S7-200利用循环移位指令控制Modbus主站通讯扫描-工程论文 S7-200利用循环移位指令控制Modbus主站通讯扫描	张元禾 ZHANG Yuan-he;岳敏 YUE Min;卢利利 LU Li-li;陈思远 CHEN Si-yuan (重庆远通电子技术开发有限公司,重庆 400013) (Chongqing Yuantong Electronic Technology Development Co.,Ltd.,Chongqing 400013,China) 摘要: 每个Modbus RS485通讯任务通常需要几个CPU执行周期,而每时刻只能有一个通讯任务被执行和等待。本文巧妙利用对数1的循环移位结合通讯指令,实现Modbus主站通讯中对多个任务的优化协调管理。 Abstract: Usually each Modbus RS485 communication task needs several CPU execution cycles, and only one communication task is evacuated or waited at each moment. This article uses logarithmic 1 cyclic shift combined communication instruction to realize optimized coordinate management of multiple tasks in Modbus main communication. 关键词	: Modbus Server;循环移位控制;S7-200通讯管理程序 Key words: Modbus Server;cyclic shift control;S7-200 communication management program 中图分类号:TJ768.4文献标识码:A 文章编号:1006-4311(2015)32-0104-02 作者简介:张元禾(1973-),男,四川遂宁人,电气主任工程师,工程学士,研究方向为工业电气自动化。 0 引言 工业控制现场总线Modbus RTU RS485由于协议简单容易实现、便于维护,在自动控制领域广泛应用。S7-200编程口可通过使用Modbus协议函数库实现Modbus主从通讯协议,用于与变频器、智能仪表等设备的通讯,被广泛用于各种小型控制系统,诸如二次供水系统、二氧化氯发生器、遥测终端等,以减少系统布线和减少模块配置。 针对S7-200PLC Modbus主站通讯多任务处理,常规编程方法会在程序里多次调用通讯库函数,通过定时器、步进控制或顺序控制继电器等方式协调多个通讯任务以防止任务冲突。但这些编程方式繁琐、通读性差,不宜控制任务增减,也不容易实现对通讯品质统计分析。随着通讯任务增加,容易发生任务冲突。作者根据RS485通讯特点,结合S7-200系列PLC移位指令实现了Modbus主站通讯管理优化设计。 1 Modbus主站协议工作原理 当S7-200CPU通讯端口处于Modbus Server模式时,CPU依次对多个从站逐一发送Modbus读写请求,并等待从站响应,再将从站数据写入相应地址区域。这里我们将一次完整的主站和从站的通讯称作一次完整对话。 2 Modbus主站协议常规编程实现 S7-200所用Modbus Server控制指令有MBUS_CTRL_ Pn和MBUS_MSG_Pn(如图1所示),n=0或1表示用端口0还是用端口1通讯。MBUS_CTRL_Pn用于端口n通讯设置,包括通讯波特率、校验和通讯超时设置。MBUS_MSG_Pn用于处理Modbus对话。MBUS_MSG_Pn参数First用于控制产生读写任务。由于采用RS485通讯,每次只能有一个Modbus对话任务执行,因此每次只能有一个MBUS_MSG_Pn执行,且MBUS_MSG_Pn的First仅能在每个Modbus对话任务执行第一周期置