昆仑通泰触摸屏与v20变频器uss通讯,控制变频器 1,通过触摸屏与变频器uss通讯 2,通过触摸屏读取变频器电压,电流,频率 3,通过触摸屏设定变频器正反转,设定频率,加速,减速时间等 4,控制变频器启停
最近在工控项目里折腾昆仑通泰触摸屏和西门子V20变频器的USS通讯,踩了几个坑,总结点实战经验给大伙儿。USS协议这玩意儿说白了就是西门子自家搞的串口通讯协议,用RS485物理层,接线简单但参数配置容易让人头大。
第一步:硬件接线别翻车
V20变频器的USS接口是端子排上的P+和N-,触摸屏这边找个支持RS485的COM口(比如COM2)。线接对了成功一半,记得屏蔽层单端接地,终端电阻看情况加(通讯距离超过50米建议挂上)。要是手头没有成品线,自己压接的时候千万注意别把P+和N-接反了,不然通讯直接哑火。
!接线示意图
第二步:变频器基础参数设置
上电后先捅变频器面板,把这两个参数调了:
P0700=5 // 控制源选USS P1000=5 // 频率源选USS不设这俩参数?等着触摸屏控制失灵吧。
第三步:触摸屏组态配置
打开昆仑通泰的MCGS组态软件,在设备窗口里添加“西门子USS协议”,填变频器站地址(默认1)、波特率(建议9600起步),数据位/停止位/校验按V20手册来。重点来了:变量关联。比如:
- 读取输出频率:绑定到V20的r0021
- 读取电流:r0027
- 读取电压:r0028
!组态变量设置截图
第四步:写点脚本动起来
触摸屏按钮控制启停的脚本示例:
' 正转启动 SendUSSCommand(1, 16#047F, 1) ' 控制字047F对应启动+正转 ' 停止 SendUSSCommand(1, 16#047E, 1)USS协议的控制字玩的是位操作,比如第0位=1表示启动,第10位=1表示正转。懒得算的话直接记住047F和047E这两个魔法值。
读取数据的坑:
USS响应数据是整型,但V20返回的值可能是实际值×10。比如读到的频率是400,实际是40.0Hz。这时候在触摸屏上做个除法处理:
ActualFrequency = RawData / 10加减速时间设置骚操作
V20的加速时间参数是P1120,减速是P1121。在触摸屏上搞两个数值输入框,写个发送函数:
Sub SetAccTime(value) SendUSSCommand(1, P1120, value*10) ' 单位0.1秒,输入5秒就填50 End Sub实测发现直接写原始值可能不生效,得在变频器里先把P1120/P1121的修改权限打开(P0003=3专家模式)。
调试必备神器
- 万用表量RS485电压(A-B间应有2-5V)
- 串口助手抓包看USS报文
- 变频器参数P2012设大点,避免通讯超时
最后放个彩蛋:遇到通讯中断时,在触摸屏上做个心跳检测。每秒发个读指令,连续3次没响应就弹报警窗口。代码大概长这样:
If HeartbeatCounter > 3 Then ShowAlarm("变频器失联!检查接线或站地址") ResetConnection() End If搞USS通讯就像谈恋爱,参数对不上就冷战(通讯失败),但只要摸清脾气(协议细节),剩下的就是按部就班调教。懒得写脚本?MCGS的协议库其实封装了常用功能,拖几个按钮绑定变量也能凑合用,但真要玩骚操作还是得撸代码。