三菱FX1N通讯E700变频器示例资料 硬件:fx1n-485bd板,fx1n plc,E700变频器一台 功能:控制功能包括正反转,停止,频率给定,读取动作包括运行频率,运行状态。 百度网盘发货,发货内容包括plc,触摸屏程序,变频器参数设置,通讯接线。 其他变频器支持rtu功能也能实现,在程序基础上修改地址和命令即可。
搞工控的兄弟应该都遇到过PLC和变频器通讯的需求,今天咱们拿三菱FX1N和E700变频器开刀,聊聊怎么用485板子实现双向通讯。手头有现成程序的老铁可以直接翻到最后拿资源,想了解实现细节的咱们慢慢唠。
硬件搭台子
先看硬件配置:FX1N本体+485BD扩展板,通过双绞线连到E700的PU口。重点说下接线——485BD的SDA接变频器SDB,SDB接SDA,RDA接RDB,RDB接RDA。注意这里要形成手拉手拓扑,变频器端别忘了接终端电阻(拨码开关搞到110Ω)。
参数设机关
变频器这边要动几个关键参数:
`python
Pr.117 = 1 # 站号
Pr.118 = 192 # 波特率9600(192=9600,96=4800)
Pr.119 = 8 # 数据位8
Pr.120 = 2 # 停止位2
Pr.121 = 9999 # 通讯超时默认
Pr.122 = 0.1 # 通讯校验时间
Pr.123 = 2 # ASCII/RTU模式选RTU
Pr.124 = 0 # 无CRLF
`
PLC这边的D8120寄存器配置成H0087(对应9600/8/1/无校验)。注意两边参数必须完全匹配,不然就像加密通话谁也听不懂谁。
PLC程序解剖
主程序用M8002上电初始化:
`assembly
MOV H87 D8120 ; 通讯格式设定
MOV K1 D0 ; 正转命令缓存
MOV K2 D1 ; 反转命令缓存
三菱FX1N通讯E700变频器示例资料 硬件:fx1n-485bd板,fx1n plc,E700变频器一台 功能:控制功能包括正反转,停止,频率给定,读取动作包括运行频率,运行状态。 百度网盘发货,发货内容包括plc,触摸屏程序,变频器参数设置,通讯接线。 其他变频器支持rtu功能也能实现,在程序基础上修改地址和命令即可。
MOV K0 D2 ; 停止命令
`
Modbus指令是关键重头戏:
`assembly
LD M8000
RSMOV K1 K1 D100 K4 ; 读运行状态(站号1,功能码01)
RSMOV K1 K3 D110 K2 ; 读输出频率(站号1,功能码03)
LD X0 ; 正转触发
RS D0 K6 K1 ; 写运行命令(功能码06)
LD X1 ; 反转触发
RS D1 K6 K1
`
这段代码看起来有点唬人,其实就是告诉PLC用485口干活。RSMOV负责读数据,RS指令负责写命令。注意功能码01对应线圈状态读取,03是保持寄存器读取,06是单寄存器写入。
触摸屏唱戏
威纶通触摸屏上做几个关键元件:
- 数值显示绑定D110寄存器(频率值)
- 指示灯绑定D100的各个位(运行状态)
- 按钮关联M0-M2地址控制启停
频率设定用32位浮点处理,注意E700的频率寄存器是40014(十六进制转十进制地址要减40001得13)。PLC里用FLT指令把整数转浮点存到D200:
`assembly
MOV K5000 D200 ; 50.00Hz
FLT D200 D210 ; 转浮点
`
扩展玩法
这套程序框架支持所有Modbus RTU设备,比如换成台达VFD-M系列,只需要改两个地方:
- 变频器站号地址
- 命令码对应关系(不同品牌寄存器地址不同)
实测波特率最高到19200没问题,再往上就容易丢包。通讯超时建议设200ms以上,工业现场干扰多,别把时间卡太死。
完整工程包(含PLC程序、HMI工程、变频器参数表)已经打包好,需要的老铁评论区留邮箱。下期咱们聊聊怎么用Python通过485给PLC发指令,让上位机也能掺和进来。