SIEMENS/西门子1214 PID/通信模板 西门子PLC 1214和多台G120西门子变频器Modbud RTU通讯。 (1)西门子触摸屏; (2)变频器参数/Modbus通讯报文详细讲解; (3)PID自写FB块无密码可直接应用到程序; (4)PID带手动自动功能,可手动调节PID; (5)程序注释详细 (6)完整的CAD电气图纸。 程序块已经在很多个项目上成熟应用,可以直接调用,对于做西门子1200轴控制等有很好的学习借鉴意义。 好好看一遍,有很大的提高作用。
搞工控的兄弟都懂,碰到西门子1200系列和变频器联动的项目,通讯这块要是没整明白能让人抓狂到薅头发。这次就唠唠1214C PLC带着一群G120变频器跳Modbus RTU广场舞的实战经验,重点说说那些手册里不写的骚操作。
先看硬件连线,RS485端子必须得压接牢靠,现场干扰大的时候建议给每个G120挂120Ω终端电阻。变频器参数配置记死这几个:P2023=3(Modbus地址),P2040=20ms(报文间隔时间),P971=1(参数保存)。之前在山东某风机项目就吃过没设P971的亏,设备断电重启参数全丢,甲方差点把控制柜给拆了。
PLC这边用TCON_CTRL指令初始化通讯模块,重点注意这个报文超时设置:
CALL "TCON_Config" REQ := TRUE, PORT := 1, BAUD := 19200, PARITY := 2, //偶校验 DATA_BITS := 8, STOP_BITS := 1, TIMEOUT := T#500MS, //超时比变频器响应时间长20% DONE => #DoneBit, ERROR => #ErrorCode);超时时间得比变频器实际响应多留20%余量,有次在新疆项目遇到电磁阀干扰,把超时设成300ms直接通讯瘫痪,调到500ms立马稳如老狗。
PID算法这块直接甩自己封装的FB块,带手动/自动无扰切换才是真男人。看这个接口设计:
FB501_PID_Compact ( Mode : Bool; //True自动/False手动 SP : Real := 0.0; //设定值 PV : Real := 0.0; //反馈值 ManOutput : Real := 0.0;//手动输出 Kp : Real := 2.0; Ti : Time := T#10S; Td : Time := T#1S; OUT_LIMIT : Real := 100.0; OUT => Real); //输出值重点在手动模式的处理逻辑:
IF NOT Mode THEN //手动模式 PID_Output := ManOutput; //抗积分饱和 ITerm := (ManOutput * OUT_LIMIT) / Kp; ELSE //正常PID运算... END_IF;这种处理能让自动切手动时输出不跳变,去年在化工厂的恒压供水项目实测切换瞬间压力波动小于0.02MPa。
触摸屏画面建议单独做PID操作面板,用符号IO域绑定Mode变量,数值输入框直接关联ManOutput。有个骚操作是给自动模式加颜色渐变:
<对象动画> <属性 Name="BackColor"> <表达式>@Mode?绿色梯度:红色梯度</表达式> </属性>现场操作工看着颜色变化就知道当前控制状态,比单纯文本提示直观得多。
程序注释必须玩真的,别整那些"此处修改参数"的废话。像这种才有价值:
//网络5:频率给定值换算 //G120频率标幺值=16384对应50Hz,需将0-50Hz线性映射到0-16384 MUL_R //实数乘法 EN := TRUE, IN1 := "Actual_Speed", //实际转速(0-50Hz) IN2 := 327.68, //16384/50=327.68 OUT => #Temp_Frequency; //临时频率值CAD图纸重点看主电路接触器控制部分,变频器启停信号必须和通讯状态联锁。曾经有个案例是通讯中断时接触器未断开,导致变频器自由停车引发溜车事故。
这套框架在水泥厂生料磨、轮胎厂密炼机等场景都验证过,最多同时带过32台G120。想要玩转西门子轴控制,先把这种基础但实用的架构吃透再说,别一上来就整PROFINET那套——现场搞维护的兄弟可不会带着网线钳修设备。