威纶通触摸屏与两台汇川sv660p伺服modbus rtu通讯程序。 可正反转并显示速度,可监控母线电压和模块温度,用的威纶通的在线模拟,真实触摸屏只要修改com口即可
最近在折腾威纶通触摸屏跟汇川SV660P伺服的通讯方案,手头要同时控两台伺服还得实时监控数据。这玩意儿说难不难,但实际调试起来确实有几个坑得注意。直接上干货,先说怎么让触摸屏跟伺服对上话。
硬件接线别整复杂了,两台SV660P用双绞线手拉手串起来就行。重点注意终端电阻拨码,最后一台设备得把120Ω电阻打上。通讯参数两边必须一致,比如波特率19200、数据位8、停止位1、偶校验这种常规配置。伺服这边记得把站号设成不同值,比如1号机设站号1,2号机设站号2。
触摸屏的地址映射是关键,SV660P的Modbus地址表得翻烂了。举个栗子,控制正反转的寄存器是0x2000(十进制8192),往这地址写1是正转,2是反转。速度设定地址是0x2001,单位是0.1r/min,要设100转就填1000。
威纶通触摸屏与两台汇川sv660p伺服modbus rtu通讯程序。 可正反转并显示速度,可监控母线电压和模块温度,用的威纶通的在线模拟,真实触摸屏只要修改com口即可
监控参数的地址更刺激,母线电压在0x0310(784),温度在0x0311(785)。注意这些地址都是16进制,在威纶通里得转成十进制数用。这里有个骚操作——用定时式资料传输元件,每500ms自动读取一次数据,比用脚本轮询省事多了。
上段实际用的宏指令代码:
Sub Macro1() ' 伺服1启动控制 SetData(1, "Local HMI", LW, 100, 1) ' 正转信号 SetData(0, "Local HMI", LW, 101, 1) ' 反转信号 ' 速度设定 SetData(1500, "Local HMI", LW, 102, 1) ' 150.0rpm ' 触发Modbus写入 SetData(1, "Local HMI", LB, 100, 1) Delay(100) SetData(0, "Local HMI", LB, 100, 1) End Sub这段代码实现了触摸屏按钮触发控制。LW100是正转命令地址,LW101管反转,LB100作为写入触发点。Delay(100)是关键,给伺服留出响应时间,不然容易丢包。
监控界面做两个自定义指示灯特别实用:母线电压超过400V变红色,温度超过75℃闪黄灯。用威纶通的报警功能就能实现,阈值判断语句这样写:
If [温度寄存器] > 75 Then Alarm_Trigger(1) End If在线模拟调试时,记得在EasyBuilder Pro里勾选"离线模拟转在线"。这时候相当于用电脑当触摸屏,USB转485适配器要装好驱动。实测时如果通讯不上,先拿Modbus Poll工具扫一遍从站地址,确认物理层没问题再调程序。
最后部署到真机时,把通讯参数里的COM口从COM1改成触摸屏实际的物理端口(一般是COM2或COM3),其他配置都不用动。这个方案实测同时控制两台伺服,500ms刷新率下通讯稳定,偶尔遇到干扰时加个0.1uF的电容在485线上就好使。