MUDBUS通讯实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MODBUS通讯实验

一、理论背景

1.1单工、半双工和全双工

单工数据传输只支持数据在一个方向上传输;全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。半双工数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。例如,在一个局域网上使用具有半双工传输的技术,一个工作站可以在线上发送数据,然后立即在线上接收数据,这些数据来自数据刚刚传输的方向。像全双工传输一样,半双工包含一个双向线路(线路可以在两个方向上传递数据)。

1.2RS-485:

RS-485标准是半双工通信协议,RS-485适用于收发双方共享一对线进行通信,也适用于多个点之间共享一对线路进行总线方式联网。在低速、短距离、无干扰的场合可以采用普通的双绞线,反之,在高速、长线传输时,则必须采用阻抗匹配(一般为120Ω)的RS485专用电缆。

RS485采用差分信号负逻辑,-2V~-6V表示“0”,+2V~+6V表示“1”。RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。

1.2Modbus

工业控制已从单机控制走向集中监控、集散控制,如今已进入网络集约制造时代。工业控制器连网也为网络管理提供了方便。Modbus就是工业控制器的网络协议中的一种。Modbus协议是应用于电子控制器上的一种通讯约规。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为主流的工业标准之一。对符合Modbus协议的不同厂商生产的控制设备可以连成工业网络,进行集中监控。

图:S7-200 D型9针接口的MODBUS接线方式

二、实验准备

1、西门子 CPU 226实验操作台;

2、自制RS-485 modbus通讯线;

3、已安装MODBUS通讯指令库的计算机;

4、MODBUS从机设备(此选用FL3102型号火探)

5、24供电电源,导线若干。

连接MODBUS通讯线,D型接口端接CPU的端口1(端口0用于与电脑通讯),针脚3引出线接火探的DATA+接线端,针脚8引出线接火探的DATA-接线端。

三、相关指令

安装完指令库后,可在指令树的“库”内找到MODBUS通讯相关指令。

需注意的是,指令的引用需与接口端对应。如本次MODBUS通讯接口插在CPU 端口1,则只能使用“MODBUSMASTER PORT 1”内的指令。

MODBUS主站通讯使用到两个相关指令:

3.1MBUS_CTRL

用于S7-200的MBUS_CTRL指令可初始化、监视或禁用Modbus通讯。在使用MBUS_MSG指令之前,必须正确执行MBUS_CTRL指令。

Mode“模式”:输入数值选择通讯协议。输入值1将CPU端口分配给Modbus协议并启用该协议。输入值0将CPU端口分配给PPI系统协议并禁用Modbus协议。

Baud"波特":参数将波特率设为1200、2400、4800、9600、19200、38400、57600或115200波特。

Parity"奇偶校验":参数被设为与Modbus从站奇偶校验相匹配。所有设置使用一个起始位和一个停止位。可接受的数值为:

0 - 无奇偶校验

1 - 奇校验

2 - 偶校验

Timeout"超时":参数设为等待来自从站应答的毫秒时间数。"超时"数值可以设置的范围为1毫秒到32767毫秒。典型值是1000毫秒(1秒)。"超时"参数应该设置的足够大,以便从站有时间对所选的波特率作出应答。

"超时"参数用于确定Modbus从站是否对请求做出应答。"超时"值确定Modbus主设备在发送了请求的最后一个字符后,将要等待多长时间才会有应答的第一个字符。如果在"超时"规定的时间内

至少收到应答的一个字符,Modbus主设备将从Modbus从站接收到整个应答。

Done"完成" :MBUS_CTRL指令完成时,输出打开。

error"错误":输出包含执行该指令的结果。下表定义了在执行MBUS_CTRL指令时会产生的错

误条件。

错误代码说明

0 无错误

1 奇偶校验选择无效

2 波特率选择无效

3 超时选择无效

4 模式选择无效

3.2MBUS_MSG

MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。当EN输入和"首次"输入打开时,BUS_MSG指令启动对Modbus从站的请求。发送请求、等待应答、并处理应答通常需要多次扫描。EN输入必须打开以启用请求的发送,并应该保持打开直到"完成"位被置位。

Frist"首次":参数应该在有新请求要发送时才打开以进行一次扫描。"首次"输入应当通过一个边沿检测元素(例如上升沿)打开,这将导致请求被传送一次。参见实例程序。

Slave"从站":参数是Modbus从站的地址。允许的范围是0到247。地址0是广播地址,只能

用于写请求。

RW "读写":参出指定是否要读取或写入该消息。"读写"参数允许使用下列两个值。

0 :读

1 :写

Addr"地址":参数是起始的Modbus地址。

10001至19999是离散输入(触点)

30001至39999是输入寄存器

40001至49999是保持寄存器

"地址"的指定取值范围基于Modbus从站支持的地址。

Count"计数":参数指定在该请求中读取或写入的数据元素的数目。"计数"值是位数(对于位数据类型)和字数(对于字数据类型)。

"DataPtr"参数是指向S7-200 CPU的V存储器中与读取或写入请求相关的数据的间接地址指针。对于读取请求,DataPtr应该指向用于存储从Modbus从站读取的数据的第一个CPU存储器位置。

对于写入请求,DataPtr应该指向要发送到Modbus从站的数据的第一个CPU存储器位置。

DataPtr值作为间接地址指针传递到MBUS_MSG。例如,如果要写入Modbus从站的数据从S7-200 CPU中的地址VW200开始,则DataPtr的数值将会是&VB200 (VB200的地址)。指针必须始终

是VB类型,即使它们指向字数据。

保持寄存器(地址4xxxx)和输入寄存器(地址3xxxx)的值是字(2个字节或16位)。S7-200 CPU

字的格式与Modbus寄存器相同。低位编号的V存储器地址是寄存器的最高有效字节。高位编号的

V存储器地址是寄存器的最低有效字节。

相关文档
最新文档