论文部分内容阅读
[摘 要]随着现代自动化控制系统、电子通讯技术等发展,信息交换沟通的领域正在迅速覆盖从工厂的现场设备层到控制、管理的各个层次。工业总线通讯技术在我国的推广应用具有非常重要的意义。本文结合球磨机现场实际情况,介绍Modbus协议在监控网络系统中的应用。
[关键词]现场总线;Modbus协议;S7-200
中图分类号:T27P7 文献标识码:A 文章编号:1009-914X(2013)25-0217-01
一、引言
在当今现代化领域,工业控制进入集中监控、网络集约制造时代。工业控制器连网也为网络管理提供了方便。Modbus 就是工业控制器的网络协议中的一种,已被广泛用于工业控制领域。
球磨机在生产过程中由于设备长期运转,造成轴瓦温度过高;喷射润滑液压系统油管堵塞、油温过高、油压欠压和过压、电控设备损毁等问题。操作员工不能及时发现,导致烧瓦等生产事故。为了减少事故率的发生,使检测数据和信号能准确无误的反馈信息。使监控人员及时发现故障信息,来降低事故率,并减少检修时间。Modbus协议分ASCII和RTU模式协议。这里我们将采用Modbus RTU协议来进行S7-200与上位机通讯,来监控现场数据和控制信号。
二、Modbus RTU协议在S7-200中应用原理
1.Modbus RTU协议与S7-200相互关系简介
Modbus RTU协议分为主站和从站。Modbus RTU主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对Port0和 Port1有效。该指令库将设置通信口工作在自由口模式下。Modbus RTU主站库对CPU的版本有要求。CPU的版本必须为2.00或者2.01,使用Modbus RTU主站指令库,可以读写Modbus RTU从站的数字量、模拟量I/O以及保持寄存器。
Modbus RTU从站指令库只支持S7-200 CPU上的通信0口(Port0)。此功能是通过S7-200的自由口通信模式实现。要实现 Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
2.Modbus寻址
2.1 Modbus 主站寻址
Modbus主设备指令支持下列Modbus地址:
(1)00001至09999是离散输出(线圈)。
(2)10001至19999是离散输入(触点)。
(3)30001至39999是输入寄存器(通常是模拟量输入)。
(4)40001至49999是保持寄存器。
所有Modbus地址均以1为基位,表示第一个数据值从地址1开始。有效地址范围将取决于从站。不同的从站将支持不同的数据类型和地址范围。
2.2 Modbus 从站寻址
Modbus从站指令支持以下地址:
(1)000001至000128是实际输出。
(2)010001至010128是实际输入。
(3)030001至030032是模拟输入寄存器。
(4)040001至04XXXX是保持寄存器,对应于V区。
其中T为S7-200中的缓冲区起始地址,即HoldStart。
三、ModbusRTU协议与S7-200在本例中的应用
1.首先检查S7-200控制系统中所用的Micro/WIN32软件版本
2.检查Micro/WIN32指令中是否有Modbus RTU从站指令库。如图1所示。
3.调用Modbus通讯初始化命令
首先为MBUS_INIT命令建立一个触发条件(只触发一次),如:SM0.1;从导航树“指令/库/Modbus Protocol”下面,将MBUS_INIT指令拖拽到主程序块中。再就是正确设置MBUS_INIT 各项调用参数和执行结果输出地址,如图2所示初始化调用过程:
Mode:协议类型,1-Modbus协议;0-PPI 协议。
Addr:PLC地址,1~247。
Baud:通讯波特率,1200、2400、4800、9600、19200、38400、57600或11520。
Parity:校验方式,0-无校验;1-奇数校验;2-偶数校验。
Delay:信息结束超时时间,0~32767,有线连接设置为 0 即可。
MaxIQ:0~128,映射在离散输入寄存器或离散输出寄存器中的I或Q数。建议为:128。
MaxAI:0~32;映射在模拟输入寄存器中AIW数;CPU 221为0,CPU 222为16,CPU 224、226和226XM为32。
MaxHold:V内存映射在保持寄存器中的寄存器数。
HoldStart:V内存的映射时的起始地址。
Done:初始化指完成时,输出为开状态;开关量(Bit)。
Error:初始化错误代码,请参阅Modbus从机协议执行错误代码;输出为字节。
4.调用Modbus从机通讯命令
初始化完成后,就可以调用Modbus从机通讯命令(MBUS_SLAVE)了。通常Modbus从机通讯命令在主程序块的每个执行周期都要初执行(始终保持通讯状态),因为可以用一个常开量作为命令的触发条件,如:SM0.0。从导航树“指令/库/Modbus Protocol”下面,将MBUS_SLAVE指令拖拽到主程序块中。调用过程如图3所示。
Done:当MBUS_SLAVE指令响应对Modbus请求时,"Done"为开状态。
没通讯请求时"Done"为关状态。
Error:指令执行结果。只有"Done"为开状态时,此状态有效。请参阅
Modbus从机协议执行错误代码;输出为字节。
5.库存储区分配
在完成前面两个指令调用后,还要为库指令使用的符号分配内存。当库指令被插入到主程序块中,在导航树“程序块”下会出现一个“库”节点。在“库”节点上点击鼠标右键,在弹出菜单中选择“库存储区”,进入“库存储区分配”对话框。注意,分配的内存不要与已使用的内存重叠。如图4所示。
四、 结束语
在本文中比较详细地介绍了Modbus总线协议,Modbus RTU从站指令在S7-200中的应用,并最终实现一个集中监控的控制系统,来满足球磨机现场的应用。通过信息化实现对大型设备的控制和保护无疑是一条有效途径。实践表明,此举会使我国矿业得到更快的发展。希望本系统对类似通讯应用有所帮助。
[关键词]现场总线;Modbus协议;S7-200
中图分类号:T27P7 文献标识码:A 文章编号:1009-914X(2013)25-0217-01
一、引言
在当今现代化领域,工业控制进入集中监控、网络集约制造时代。工业控制器连网也为网络管理提供了方便。Modbus 就是工业控制器的网络协议中的一种,已被广泛用于工业控制领域。
球磨机在生产过程中由于设备长期运转,造成轴瓦温度过高;喷射润滑液压系统油管堵塞、油温过高、油压欠压和过压、电控设备损毁等问题。操作员工不能及时发现,导致烧瓦等生产事故。为了减少事故率的发生,使检测数据和信号能准确无误的反馈信息。使监控人员及时发现故障信息,来降低事故率,并减少检修时间。Modbus协议分ASCII和RTU模式协议。这里我们将采用Modbus RTU协议来进行S7-200与上位机通讯,来监控现场数据和控制信号。
二、Modbus RTU协议在S7-200中应用原理
1.Modbus RTU协议与S7-200相互关系简介
Modbus RTU协议分为主站和从站。Modbus RTU主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对Port0和 Port1有效。该指令库将设置通信口工作在自由口模式下。Modbus RTU主站库对CPU的版本有要求。CPU的版本必须为2.00或者2.01,使用Modbus RTU主站指令库,可以读写Modbus RTU从站的数字量、模拟量I/O以及保持寄存器。
Modbus RTU从站指令库只支持S7-200 CPU上的通信0口(Port0)。此功能是通过S7-200的自由口通信模式实现。要实现 Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
2.Modbus寻址
2.1 Modbus 主站寻址
Modbus主设备指令支持下列Modbus地址:
(1)00001至09999是离散输出(线圈)。
(2)10001至19999是离散输入(触点)。
(3)30001至39999是输入寄存器(通常是模拟量输入)。
(4)40001至49999是保持寄存器。
所有Modbus地址均以1为基位,表示第一个数据值从地址1开始。有效地址范围将取决于从站。不同的从站将支持不同的数据类型和地址范围。
2.2 Modbus 从站寻址
Modbus从站指令支持以下地址:
(1)000001至000128是实际输出。
(2)010001至010128是实际输入。
(3)030001至030032是模拟输入寄存器。
(4)040001至04XXXX是保持寄存器,对应于V区。
其中T为S7-200中的缓冲区起始地址,即HoldStart。
三、ModbusRTU协议与S7-200在本例中的应用
1.首先检查S7-200控制系统中所用的Micro/WIN32软件版本
2.检查Micro/WIN32指令中是否有Modbus RTU从站指令库。如图1所示。
3.调用Modbus通讯初始化命令
首先为MBUS_INIT命令建立一个触发条件(只触发一次),如:SM0.1;从导航树“指令/库/Modbus Protocol”下面,将MBUS_INIT指令拖拽到主程序块中。再就是正确设置MBUS_INIT 各项调用参数和执行结果输出地址,如图2所示初始化调用过程:
Mode:协议类型,1-Modbus协议;0-PPI 协议。
Addr:PLC地址,1~247。
Baud:通讯波特率,1200、2400、4800、9600、19200、38400、57600或11520。
Parity:校验方式,0-无校验;1-奇数校验;2-偶数校验。
Delay:信息结束超时时间,0~32767,有线连接设置为 0 即可。
MaxIQ:0~128,映射在离散输入寄存器或离散输出寄存器中的I或Q数。建议为:128。
MaxAI:0~32;映射在模拟输入寄存器中AIW数;CPU 221为0,CPU 222为16,CPU 224、226和226XM为32。
MaxHold:V内存映射在保持寄存器中的寄存器数。
HoldStart:V内存的映射时的起始地址。
Done:初始化指完成时,输出为开状态;开关量(Bit)。
Error:初始化错误代码,请参阅Modbus从机协议执行错误代码;输出为字节。
4.调用Modbus从机通讯命令
初始化完成后,就可以调用Modbus从机通讯命令(MBUS_SLAVE)了。通常Modbus从机通讯命令在主程序块的每个执行周期都要初执行(始终保持通讯状态),因为可以用一个常开量作为命令的触发条件,如:SM0.0。从导航树“指令/库/Modbus Protocol”下面,将MBUS_SLAVE指令拖拽到主程序块中。调用过程如图3所示。
Done:当MBUS_SLAVE指令响应对Modbus请求时,"Done"为开状态。
没通讯请求时"Done"为关状态。
Error:指令执行结果。只有"Done"为开状态时,此状态有效。请参阅
Modbus从机协议执行错误代码;输出为字节。
5.库存储区分配
在完成前面两个指令调用后,还要为库指令使用的符号分配内存。当库指令被插入到主程序块中,在导航树“程序块”下会出现一个“库”节点。在“库”节点上点击鼠标右键,在弹出菜单中选择“库存储区”,进入“库存储区分配”对话框。注意,分配的内存不要与已使用的内存重叠。如图4所示。
四、 结束语
在本文中比较详细地介绍了Modbus总线协议,Modbus RTU从站指令在S7-200中的应用,并最终实现一个集中监控的控制系统,来满足球磨机现场的应用。通过信息化实现对大型设备的控制和保护无疑是一条有效途径。实践表明,此举会使我国矿业得到更快的发展。希望本系统对类似通讯应用有所帮助。