《modbus通讯介绍》由会员分享,可在线阅读,更多相关《modbus通讯介绍(31页珍藏版)》请在金锄头文库上搜索。
1、MODBUS通讯,台达所有系列的PLC都支援modbus协议,MASTER/SLAVE模式,可以和其他支持modbus协议的设备容易的实现通讯。,MODBUS通讯实现步骤: 1、设定通讯格式 2、送出通讯请求 3、编写通讯程序,包括通讯指令,通讯数据处理,MODBUS通讯指令介绍,MODBUS读取指令,S1:联机装置地址。 S2:欲读取数据的地址。 n:读取数据长度。 MODRD指令系针对MODBUS ASCII模式/RTU模式的通讯外围设备专用的驱动指令。台达全系列产品内建的RS-485通讯接口皆符合MODBUS的通讯格式(除了 VFD-A 系列),可利用 MODRD 指令进行通讯控制(数据
2、读取)。 S2 欲读取数据的地址。若地址对于被指定的联机装置不合法,则联机装置会响应错误信息,PLC 将错误代码储存在 D1130,同时,M1141 会 On。 联机外围装置回传的数据储存于 D1070D1085。接收完毕后,PLC 会自动检查所接收的数据是否有误,若发生错误则 M1140 会 On。 若使用 ASCII 模式,由于回传的数据均为 ASCII 字符,PLC 会另外将回传主要的数据转为数值转存于D1050D1055。若使用RTU模式则D1050D1055无效。 当 M1140=On 或 M1141=On 之后,再传送一笔正确数据给外围装置,若回传的数据正确则标志 M1140,M1
3、141 会被清除。,指令说明,范例:ASCII模式,PLC 传送出的数据寄存器 (传送信息),读取上来的数据以 ASCII 字符形式储存于 D1070D1085。PLC 自动将其内容转换为数值储存于 D1050D1055。,范例:RTU模式(M1143 ON),PLC 传送出的数据寄存器 (传送信息),读取上来的数据需要自行处理。,MODBUS写入指令,S1:联机装置地址。 S2:欲写入数据的地址。 n:欲写入的数据。 MODWR 指令系针对 MODBUS ASCII 模式 / RTU模式的通讯外围设备专用的驱动指令。台达 全系列产品内建 RS-485 通讯接口皆符合 MODBUS 的通讯格式
4、(除了 VFD-A 系列),因此可利用 MODWR 指令进行通讯控制(数据写入)。 S2 欲写入数据的地址。若地址对于被指定的装置不合法,则会响应错误信息,错误代码储存于 D1130,同时,M1141 会 On。例如 8000H 对 VFD-S 不合法,则M1141 On,D1130=2,错误代码请参考 VFD-S 使用手册)。 外围装置回传的数据储存于 D10701076。接收完毕后,PLC 会自动检查所接收的数据是否有误,若发生错误则 M1140 会 On。 当 M1140=On 或 M1141=On 之后,再传送一笔正确数据给外围装置,若回传的数据正确则标志 M1140,M1141 会被
5、清除。,指令说明,范例(ASCII模式),PLCVFD-S,PLC 传送:“ 01 06 0100 1770 71 ” VFD-SPLC,PLC 接收:“ 01 06 0100 1770 71 ”,ASCII模式,读取上来的数据以 ASCII 字符形式储存于 D1070D1085。PLC 自动将其内容转换为数值储存于 D1050D1055。,练习: 1、设定通讯格式为19200 ,7,n,2 2、通过通讯设定变频器的频率,范例(RTU模式),RTU模式,MODBUS读/写指令,支援H03,H05,H06,HF,H10功能码。功能码的具体含义,请各位参照标准modbus协议手册,指令说明,功能码
6、 K3(H3):读取多笔寄存器数据。 1. PLC 与 支持modbus的设备联机 (M1143=Off 时,ASCII Mode) 2. PLC 与 支持modbus的设备联机 (M1143=On 时,RTU Mode) 当在 ASCII 模式时,接收数据(包含)以 ASCII 码形式储存于使用者指定寄存器开始的寄存器内,PLC 自动将其内容转为 HEX 数值存放在 D1296D1311 等特殊寄存器内。在开始转换为 HEX 数值时,标志M1131=On,转换完毕自动 Off。,ASCII Mode:PLC 与 VFD-S 系列变频器联机 PLCVFD-S,PLC 传送:“01 03 210
7、0 0006 D5”,VFD-SPLC,PLC 接收:“01 03 0C 0100 1766 0000 0000 0136 0000 3B”,ASCII Mode,读取上来的数值存放在D1296-D1311内,练习:使用MODRW指令 1、通讯格式为9600,7,偶,1 ASCII模式 2、读取P12及P13的数值并保存到D100,D101中,功能码 K6(H6):写入一笔 Word 数据至寄存器。 1. PLC 与 支持modbus的设备联机 (M1143=Off 时,ASCII Mode) 2. PLC 与 支持modbus的设备联机 (M1143=On 时,RTU Mode) 当在 AS
8、CII 模式时,使用者将欲写入变频器的数据以 HEX 数值形式储存于使用者指定的寄存器内。回传数据储存在 D1070D1076 寄存器内。 当在 RTU 模式时,使用者将欲写入变频器的数据以 HEX 数值形式储存于使用者指定的 寄存器内。回传数据储存在 D1070D1077 寄存器内。,RTU模式,功能码 K16(H10):写入多笔 Word 数据至寄存器。 1. PLC 与 支持modbus的设备联机 (M1143=Off 时,ASCII Mode) 2. PLC 与 支持modbus的设备联机 (M1143=On 时,RTU Mode) 当在 ASCII 模式时,使用者将欲写入变频器的数据
9、以 HEX 数值形式储存于使用者指定的寄存器内。回传数据储存在D1070D1076寄存器内。 当在 RTU 模式时,使用者将欲写入变频器的数据以 HEX 数值形式储存于使用者指定的寄存器内。回传数据储存在 D1070D1077 寄存器内。,ASCII Mode:PLC 与 VFD-S 系列变频器联机 PLCVFD-S,PLC 传送:“ 01 10 2000 0002 04 0012 1770 30 ” VFD-SPLC,PLC 接收:“ 01 10 2000 0002 CD ”,ASCII Mode:PLC 与 VFD-S 系列变频器联机,RTU Mode:PLC 与 VFD-S 系列变频器联
10、机 PLC VFD-S,PLC 传送: 01 10 2000 0002 04 0012 1770 C4 7F VFD-S PLC,PLC 接收: 01 10 2000 0002 4A 08,RTU Mode:PLC 与 VFD-S 系列变频器联机,MODBUS通讯指令使用注意点: 1)MODRD/MODRW(功能码H03) 指令前启动条件不可使用接点上升沿(LDP/ANDP/ORP)或者下降沿(LDF/ANDF/ORF),否则存放在接收寄存器的数据会不正确。 2) MODWR、MODRW(功能码 H06、H10)指令前面启动条件使用接点上 升沿(LDP,ANDP,ORP) / 接点下降沿(LD
11、F,ANDF,ORF),须先启动 送信要求 M1122,才可正确动作。 3)这些指令在程序中使用次数并无限制,但是同时只能有一个指令被执行。,习题,编写MODBUS通讯程序,要求:(1)可以设定变频器的频率;(2)可以实现变频器启动或者停止;(3)读出变频器当前的频率值和电流值。,ASCII模式:,LRC 校验码: 校验码(LRC Check) 由Address 到Data Content 结束加起来的值取 2 的补码。 例如: 01H + 03H + 21H + 02H + 00H + 02H=29H,然后取 2 的补码=D7H。 结束字符: 固定为 END Hi=CR (0DH), END Lo=LF(0AH) 校验码可以使用wpl软件附带的校验值计算模块来获得,RTU模式:,CRC 校验码: CRC校验值计算比较复杂,一般可以通过 高级语言来编写算法获得。 现在大多控制器都有专门的CRC指令,可 以方便的获得。 校验码可以使用wpl软件附带的校验值计算 模块来获得,