1、*1 PLC通信篇 MODBUS-RTU协议 主讲:温惠萍 2012.5.7开讲 *2 MODBUS协议说明 l1、MODBUS通讯的底层为RS485信号, 采用双绞线进行联接就可以了,因此传输距 离较远,可达 1000米,抗干扰性能比较好 ,且成本低,在工业控制设备的通讯中被广 泛使用,现在众多厂家的变频器、控制器都 采用了该协议。 *3 MODBUS协议说明 l2、传送数据格式有HEX码数据和ASCII码两 种。 l分别称为MODBUS-RTU和MODBUS-ASC 协 议。 lMODBUS-RTU协议为数据直接传送, lMODBUS-ASC 协议需将数据变换为 ASCII码后传送, l因
2、此MODBUS-RTU协议的通讯效率较高,处 理简单,使用得更多。 *4 MODBUS协议说明 l3、MODBUS为单主多从通讯方式,采 用的是主问从答方式,每次通讯都是由 主站首先发起,从站被动应答。因此, 如变频器之类的被控设备,一般内置的 是从站协议,而PLC之类的控制设备, 则需具有主站协议、从站协议。 *5 MODBUS协议说明 l4、在H2U、H1U系列PLC的系统软 件内已封装了MODBUS协议, l包括MODBUS-RTU主站和从站、 l包括MODBUS-ASC主站和从站, lMODBUS协议可应用于COM1通讯 口,只需给系统寄存器D8126设置相 应的数值就可使用了。 *6
3、 MODBUS主站通讯应用 l将D8126设定为H20,就将COM1口的 通讯协议配置为MODBUS-RTU主站协 议,在V24120版本以上的H2U系列 PLC中,还可直接使用“MODBUS”指 令进行通讯,“MODBUS”指令的4个操 作数支持的数据类型比较灵活,编程更 方便。 l选择了MODBUS主站协议,才能进行 MODBUS通讯。 *7 MODBUSRTU主站通讯应用 l编写主站(站号0)的程序 COM1选择 MODBUS-RTU主 站协议 COM1通信格式为: 9600bps,8N1 *8 MODBUS从站通讯应用 l有些工业应用中,PLC控制器作为工业自动 化系统的一部分,要接受
4、自动化控制网络的 监控,典型的上位机有如DCS、运行组2态 软件的工业PC等,作为监控主机,以 MODBUS主站协议与PLC等设备进行通讯 ,此时PLC的通讯口需要以MODBUS从站 协议与上位机通讯。H2U、H1U系列PLC内 置有MODBUS-RTU从站协议和MODBUS- ASC从站协议,并且在COM0和COM1口都 可以该协议运行。 *9 MODBUS从站协议的相关寄存器 lPLC程序中,将上述几个寄存器配置完毕,当相应通讯 口有MODBUS主站发送给本机地址的通讯帧时,PLC系 统程序即会根据通讯要求,自动组织MODBUS通讯帧进 行应答,无需用户程序的参与。 *10 MODBUSR
5、TU从站通讯应用 l编写从站(站号2)的程序 COM1选择MODBUS- RTU从站协议 COM1通信格式为: 9600bps,8N1 设置本PLC的COM1 口的站号地址为:从 站站2号站 *11 用MODBUS指令实现的通讯编程 其中的操作数: 从机地址(高字)、通命令(低字,按 MODBUS 定); 从站的寄存器起始地址号; 欲或写的数据度,位word; 或写数据的存放元起始地址,占用后地 址元,度由 决定。 S 1 S 2 n D MODBUS 主站指令 从机 地址 操作 命令 HL 寄存器起始 地址 数据个 数 收/发数据 起始地址 S 1 S 2 n D n *12 用MODBUS
6、指令实现的通讯编程 MODBUS指令中各操作数支持的变量类型如下表: S 1 S 2 n D MODBUS主站 指令 从机 地址 操作 命令 HL 寄存器起始 地址 数据个 数 收/发数据 起始地址 *13 用MODBUS指令实现的通讯编程 MODBUS指令中各操作数支持的变量类型如下表: S 1 S 2 n D MODBUS主站 指令 从机 地址 操作 命令 HL 寄存器起始 地址 数据个 数 收/发数据 起始地址 1、从机地址:主站发送帧中,该地址表示目标接收从机的地址;从机应答帧中,表示本机地 址;从机地址的设定范围为1247,0为广播通信地址。 2、操作命令:表示读或写操作;0 x1读
7、线圈操作;0 x03读寄存器操作;0 x05改写线圈 操作;0 x06改写寄存器操作。对于变频器而言,只支持0 x03读、0 x06写的 操作。 3、寄存器起始地址:表示对从机中要访问的寄存器地址,对于MD280、MD320系列变频 器的访问时,对应的就是“功能码号”、“命令地址”、“运行参数地 址”; 4、数据个数:即从“寄存器起始地址”开始要连续访问的数据个数,对于寄存器变量,以word为 单位。 5、寄存器参数(数据):要改写的数据(主机改写),或读取的数据(从机应答); *14 MODBUS指令实现的通讯 应用案例一 l2个H2U系列的PLC通过485采用双绞线 进行联接就可以了。 l要求: l通过PLC1的开关X0X3控制PLC2上的 指示灯Y0Y3; l通过PLC2上的开关X10X13去控制 PLC1一的指示灯Y10Y13; l连接示意图如下,写出控制程序。 *15 MODBUS指令实现的通讯 应用案例一 主站程序从站程序