昆仑通态MCGS与力士乐VFC-x610变频器通讯 实现昆仑通态触摸屏与力士乐VFC-x610变频器通讯,程序稳定可靠 器件:昆仑通态TPC7062KD触摸屏,力士乐VFC-x610变频器,附送接线说明和设置说明 功能:实现频率设定,启停控制,实际频率读取等,状态指示
最近在自动化项目里搞定了昆仑通态TPC7062KD触摸屏和力士乐VFC-x610变频器的通讯联动。这俩设备配合起来干活确实利索,特别是用Modbus RTU协议直接怼,比想象中要稳得多。直接上干货,说说怎么让它们"对上暗号"。
硬件接线最怕的就是线序搞反。VFC-x610的RS485口藏在控制端子排的3、4脚(标着A+和B-),触摸屏这边用COM2口的485端子。重点来了:A+必须接A+,B-必须接B-,反了直接通讯瘫痪。之前有个兄弟不信邪非要倒着接,结果变频器参数刷得跟跑马灯似的乱跳...
通讯参数设置得像照镜子一样对称。两边波特率都设19200(再高容易受干扰),数据位8,停止位1,无校验。变频器参数P-08要改成3(Modbus从站模式),站号建议设成1,省得跟其他设备撞车。
触摸屏这边用MCGS组态软件的设备窗口搞事情。拖个通用串口父设备和ModbusRTU子设备,关键参数跟变频器保持队形。这里有个坑——超时时间别设太短,500ms起步,毕竟工业现场电磁环境复杂。
启停控制最常用的是写保持寄存器0x2000。0x01启动,0x00停机。脚本里直接怼:
!SetDevice("变频器", 6, "WriteSingleReg(1,16#2000,0x01)")这行代码相当于给变频器下"开工令"。注意16#2000是Modbus的4xxxx地址,实际发指令时要转成0x2000的寄存器地址。
频率设定玩的是0x2001寄存器。但要注意数值得放大10倍发过去,比如50.0Hz要写成500。触摸屏的数值输入组件绑定这个寄存器时,记得在设备属性里设置比例因子0.1。之前有个老铁没设这个,直接发了50过去,结果变频器飙到500Hz,电机差点表演原地升天...
实时监控用0x2003寄存器读实际频率。在触摸屏上拉个实时曲线控件,绑定这个寄存器地址,采样周期别设太密,500ms刚刚好。读数据的脚本长这样:
dim actual_freq actual_freq = GetDevice("变频器", "ReadHoldReg(1,16#2003,1)") !SetData(actual_freq, "局部变量", "实际频率")这里有个细节——读回来的值是整数,要在画面显示时除以10。曾经有个项目因为这个小数点没处理,操作工看着25Hz显示成250,差点把急停拍烂。
昆仑通态MCGS与力士乐VFC-x610变频器通讯 实现昆仑通态触摸屏与力士乐VFC-x610变频器通讯,程序稳定可靠 器件:昆仑通态TPC7062KD触摸屏,力士乐VFC-x610变频器,附送接线说明和设置说明 功能:实现频率设定,启停控制,实际频率读取等,状态指示
状态指示灯建议用0x2010故障寄存器。在MCGS里搞个圆形指示灯,表达式写成:
$设备名.ReadHoldReg(1,16#2010,1) == 0 ? 绿色 : 红色
这样只要寄存器值非零就变红报警。测试时故意触发个过流故障,指示灯秒变红,比原厂面板的反应还快。
调试时建议先拿串口助手抓包。正常通讯时,触摸屏发的指令帧应该是这样的:
01 06 20 00 00 01 XX XX(启动命令)
回复帧要是01 06 20 00 00 01 XX XX就说明握手成功。有个项目死活不通,最后发现是变频器的终端电阻没拨,120Ω电阻并上去立马药到病除。
这套方案在纺机设备上跑了三个月没掉过链子,关键是参数设对了真的稳如老狗。下次要是遇到通讯时好时坏,先查接地——别问我怎么知道的,那天的电焊机差点让我怀疑人生。完整代码和接线图扔在GitHub了,需要自取。