在工业自动化控制系统中,人机界面(HMI)与变频器之间的稳定通讯是实现设备监控和参数调整的基础功能。这次我们要实现的是昆仑通态触摸屏与3台东元N310变频器的通讯集成,这是一个典型的工业现场总线应用场景。
东元N310系列变频器是台湾东元电机推出的高性能矢量控制变频器,支持Modbus RTU通讯协议,广泛应用于风机、水泵、传送带等设备的调速控制。昆仑通态作为国内领先的HMI品牌,其触摸屏产品在工业现场有着广泛的应用基础。
这个项目的核心需求可以分解为:
东元N310变频器支持标准的Modbus RTU协议,通讯参数如下:
昆仑通态触摸屏同样内置Modbus RTU主站协议,两者在协议层面完全兼容。我们选择最常用的9600bps、8N1参数配置作为基础通讯设置。
对于3台变频器的连接,有两种典型方案:
方案一:RS485总线型连接
code复制昆仑通态触摸屏(RS485主站)
├── 终端电阻(120Ω)
├── 变频器1(地址1)
├── 变频器2(地址2)
└── 变频器3(地址3)
方案二:RS485星型连接
code复制昆仑通态触摸屏
├── 变频器1
├── 变频器2
└── 变频器3
考虑到工业现场的可靠性要求,我们选择方案一的总线型连接,但需要注意:
重要提示:在通电状态下插拔通讯端子可能导致端口损坏,务必断电操作!
每台N310变频器需要设置以下参数(通过操作面板):
| 参数代码 | 参数名称 | 设定值 | 说明 |
|---|---|---|---|
| P00.15 | 通讯地址 | 1/2/3 | 分别设置3台不同地址 |
| P00.16 | 通讯波特率 | 1 | 对应9600bps |
| P00.17 | 通讯数据格式 | 0 | 8N1无校验 |
| P00.18 | 通讯超时时间 | 1.0 | 1秒超时 |
| P00.19 | 通讯应答延迟 | 0 | 无延迟 |
需要监控的变频器参数对应Modbus寄存器地址:
| 参数名称 | 寄存器地址 | 数据类型 | 读写属性 |
|---|---|---|---|
| 运行频率 | 0x1000 | U16 | 只读 |
| 设定频率 | 0x1001 | U16 | 读写 |
| 输出电流 | 0x1002 | U16 | 只读 |
| 输出电压 | 0x1003 | U16 | 只读 |
| 运行状态 | 0x1004 | Bit | 只读 |
注意:东元N310的寄存器地址以十六进制表示,在昆仑通态中需要转换为十进制(如0x1000→4096)
为每台变频器创建对应的数据变量:
| 变量名 | 类型 | 设备地址 | 寄存器地址 | 数据类型 |
|---|---|---|---|---|
| Dev1_RunFreq | REAL | 1 | 4096 | U16 |
| Dev1_SetFreq | REAL | 1 | 4097 | U16 |
| Dev1_Current | REAL | 1 | 4098 | U16 |
| Dev2_RunFreq | REAL | 2 | 4096 | U16 |
| ... | ... | ... | ... | ... |
实际工程中建议使用更有意义的变量命名,如"传送带1_运行频率"
创建主监控画面,添加以下元素:
为按钮添加脚本逻辑(示例):
basic复制' 启动变频器1
IF 启动按钮=1 THEN
WriteDevice(1, 4097, 50) ' 设定频率50Hz
WriteDevice(1, 4095, 1) ' 启动命令
ENDIF
问题1:通讯超时或无响应
问题2:数据跳动或错误
basic复制' 在循环脚本中实现分时访问
IF SysTime.Second MOD 3 = 0 THEN
ReadDevice(1, 4096, 1) ' 读取设备1
ELSEIF SysTime.Second MOD 3 = 1 THEN
ReadDevice(2, 4096, 1) ' 读取设备2
ELSE
ReadDevice(3, 4096, 1) ' 读取设备3
ENDIF
basic复制' 在数值显示控件中添加数据校验
IF 运行频率 < 0 OR 运行频率 > 100 THEN
显示值 = "---"
ELSE
显示值 = 运行频率
ENDIF
在实际项目中,有几点经验值得分享:
code复制实际频率 = (原始值 × 最大频率) / 65535
在昆仑通态中可以通过"线性转换"功能实现。
这个方案已经成功应用于多个现场,最长的稳定运行时间超过2年。关键是要做好前期的参数配置和硬件安装,后期的维护工作量其实很小。对于需要扩展更多变频器的场合,可以考虑升级到Modbus TCP网络,或者采用带中继功能的485集线器。