西门子 PID 实例
这是一个西门子 s7-200 PID 程序实例,程序中的 PID 程序块可利用 s7-Micro/win 程序中的“工具”→“指令向导”生成。根据向导的提示可
以对死区、报警、手动等功能进行选择,可以对设定范围、P、I、D 等参数进行设定(完成后还可以利用向导进行更改)。根据提示完
成设定后会自动生成一个子程序和一个中断程序,在主程序或其他程序中调用 PID 子程序就可以实现 PID 调节功能。需要更详细的说明
可以直接察看编程软件的帮助文档,那里说明的还是比较详细的!
相应的控制主程序为:
初始化子程序 SBR0 为
由程序向导生成 PID 中断子程序 PID0_INTI 为:
初始化子程序 SBR0 为
采用中断子程序 INT0 为:
由程序向导生成 PID 中断子程序 PID0_INTI 为:
程序的大概意思就是说,PLC 模拟输出模块的 4-20MA 电流信号,来控制现场变频器的自动变速,当
模拟模块输出 20MA 电流,变频器以 50HZ 的频率运行,PLC 输出 0MA 电流信号,变频器停止运行。根
据实际需要直接修改 IN 的值就可以了。
下面我已把 IN 的值设为 50,也就是说,现在模块现在输出 20MA 的电流,现场变频器以 50HZ 的频率
运行。如想变频器以 30HZ 的频率运行,直接将 IN 的值设为 30 就 OK 了。
大家看我写的这段程序可行吗?有什么毛病的话,有的话请大家指出来,我好再改正一下,谢谢。
此主题相关图片如下,点击图片看大图:
此主题相关图片如下,点击图片看大图:
此主题相关图片如下,点击图片看大图:
西门子 S7-200 简单模拟量编程程序
硬件:S7-200 CPU226:1 个模拟量扩展:EM235:3 个
TITLE=//子程序 1:数据采集部份 //
Network 1
// // 初始化,采集模拟量输入电压信号 //
LD SM0.0
MOVW AIW0, VW40
MOVW AIW8, VW50
MOVW AIW16, VW60
Network 2
// // 模拟量信号校准,75 为换算值,不得修改;10 为增加 HMI 上的小数点位数 //
LD SM0.0
/D +75, VD40
*D +10, VD40
/D +75, VD50
*D +10, VD50
/D +75, VD60
*D +10, VD60
Network 3
// // 互感器比设定,VD270 为最终比值,10 为增加 HMI 上小数点而设立 //
LD SM0.0
MOVD VD260, VD270
/D VD240, VD270
*D +10, VD270
Network 4
// // 初始化,采集模拟量输入电流信号 //
LD SM0.0
MOVW AIW2, VW70 字串 4
MOVW AIW10, VW80
MOVW AIW18, VW90
Network 5
// // 模拟量信号校准,6005 为换算值,不得修改;与互感器比运算得出真值 //
LD SM0.0
/D +6005, VD70
*D VD270, VD70
/D +6005, VD80
*D VD270, VD80
/D +6005, VD90
*D VD270, VD90