您现在的位置是:首页 > PLC技术 > PLC技术

MODBUS协议下PLC的通信程序

来源:艾特贸易2017-06-04

简介1 . MODBUS 协议 MODBUS 协议是 GOULD 公司为工业控制而设计的一种工业通信和分布式控制系统协议,大量应用证明是一种可靠、有效的工业控制系统通信协议,得到包括西门子、 Honeywell 等

    1MODBUS协议    MODBUS协议是GOULD公司为工业控制而设计的一种工业通信和分布式控制系统协议,大量应用证明是一种可靠、有效的工业控制系统通信协议,得到包括西门子、Honeywell等众多硬件厂商支持,并广泛应用,其特点如下。    ·是一种主从网络,允许一个主机和一个或多个从机通信,以完成编程、数据传送、程序上装/下装及其主机操作。    ·MODBUS协议采用命令/应答方式,每一种命令报文都对应着一种应答报文。命令报文由主站发出,当从站收到后,就发出相应的应答报文进行响应。每个从机有一个惟一的地址,只有被访问的从机才会反应包含其地址的查询。也可采用广播式命令,在广播式的报文中使用地址0,所有的从机把它当作一个指令进行响应,但不发回应答报文。    ·在Modbus系统中有两种有效的传输模式:ASCII(美国标准信息交换码)和RTU(远程终端装置)。RTU模式的传输格式是8个数据位,一个停止位,没有奇偶校验位。    ·RTU发送模式仅靠模拟的同步信息来保持帧的同步,接收设备监视接收字符间的经过时间,如果3个半字符的经过时间后仍没有新的字符或没完成帧,设备就会冲掉该帧并设定下一个接收的字符为地址。    ·当出现异常时,Modbus会发送一个含有从机地址、功能码、错误代码和错误检测字段的信息给主机,为了表明此应答是一个错误通知,功能码的高位被置成1    本例采用MODBUS协议的RTU模式,系统间的数据交换类型由功能号(FCs)控制,如表10.15所示。    10.15    MODBUS协议下的功能
MODBUS协议下的功能
    由于在数据读写中,对输入输出点和各类寄存器的操作均可转化为定义相应功能寄存器,并通过对这些寄存器读写而实现,所以功能0316可对多个寄存器进行操作,能基本涵盖各类型读写操作功能。其帧格式如表10.16、表10.17、表10.18所示。    10.16    功能号03的请求帧
功能号03的请求帧
    10.17    功能号03的响应帧
功能号03的响应帧
    10.18    功能号16的响应帧
功能号16的响应帧
    2PLC的通信程序    PLC通信程序遵循MODBUS协议,采用模块化的子程序结构。即整体功能由多个功能相对独立的子功能组合实现,每个子功能由若干个任务单一的子程序构成。    (1)通信总调度模块    通信总调度模块的作用是将PLC通信部分的功能归并为一个调用单元,作为一个功能模块提供给PLC的主程序。PLC在每次扫描中均执行这一模块,完成通信方面的处理工作。程序流程如图10.43所示。
PLC通信程序框图
    10.43    PLC通信程序框图    模块设置一个通信超时标志,当请求帧尚未接收完毕,而后续字节超过20ms仍未到达,则断定通信出错。出错则丢弃本帧,调用通信初始化模块进行工作区的复位,并准备下一次的通信。    (2)通信初始化模块    PLC的通信以“接受请求帧一返回响应帧”的过程作为一个通信循环,每次循环之前均通过初始化模块对通信工作区中的各中间变量和标志进行复位操作,并将同步字、接收数据指针和发送数据长度的设置放在开机初始化中,在第一个扫描周期时执行。    本例串口设置寄存器SMB30的控制字为9,即采用自由口方式,数据传输率为9600bit/s,字符长度8位,无校验。    (3)通信寄存器刷新模块    通信寄存器是上位机程序同PLC进行数据交换的桥梁。PLC把其I/O点状态存入相应通信寄存器,作为发送数据前的准备。在PLC中,对于上传的状态数据.实时进行对应寄存器的刷新,以随时准备将数据提供给一卜位机。    本例上位计算机对PLC的远程监控问题。可以看出,远程监控就是指通过设在监控中心的计算机对分布在现场的具有网络通信功能的异地设备进行远程监视与操作。远程监控系统能够对运行设备的状态信号、运行数据、故障类型实行实时远程动态监控,及早地预告和排除设备故障。    立足于现有电话网络,通过Modem拨号上网实现PLCPC之间的远程通信,可以满足监控系统的要求,使远程监控中心能够通过PLC读取自动化设备的实时运行信息,并能向PLC传送控制指令。    随着科学技术的发展,生产过程日益朝着高速、连续、集成与自动化方向发展,劳动力成本日益上升,传统的工业监控方式已不能满足现代工业生产的需要,远程监控系统得到越来越广泛的应用。PLC在远程监控系统中的应用也会越来越多,同时远程监控功能的实现也进一步拓展了PLC的功能和用途。