6ES7288-1SR30-0AA1|秦皇岛西门子PLC代理商
6ES7288-1SR30-0AA1|秦皇岛西门子PLC代理商6ES7288-1SR30-0AA1|秦皇岛西门子PLC代理商
42-0AA0 |
3VA2063-6JQ42-0AA0 |
3VA2010-6JQ42-0AA0 |
3VA2125-6JQ42-0AA0 |
3VA2140-6JQ42-0AA0 |
3VA2163-6JQ42-0AA0 |
3VA2110-6JQ42-0AA0 |
3VA2116-6JQ42-0AA0 |
3VA2216-6JQ42-0AA0 |
3VA2225-6JQ42-0AA0 |
3VA2325-6JQ42-0AA0 |
3VA2340-6JQ42-0AA0 |
3VA2440-6JQ42-0AA0 |
3VA2450-6JQ42-0AA0 |
3VA2463-6JQ42-0AA0 |
3VA2025-7JQ42-0AA0 |
3VA2040-7JQ42-0AA0 |
3VA2063-7JQ42-0AA0 |
3VA2010-7JQ42-0AA0 |
3VA2125-7JQ42-0AA0 |
3VA2140-7JQ42-0AA0 |
3VA2163-7JQ42-0AA0 |
3VA2110-7JQ42-0AA0 |
3VA2116-7JQ42-0AA0 |
3VA2216-7JQ42-0AA0 |
17.modbus通讯概述【连载17】
自由口需要讲的内容已经给大家全部讲完了,RS485通讯中的基础知识也全部给大家梳理了一遍,那么从本篇文章开始我就具体和大家把RS485通讯中的modbus RTU协议和大家具体讲解一下。
首先大家要明确一点,目前为止modbus RTU协议是在工业控制中RS485硬件层面常用的协议之一,我这里的目标主要有两点,帮助大家掌握S7-200modbus库的使用,第二帮助大家搞清楚modbus RTU协议的报文格式。
2、modbus RTU协议特点
我们首先熟悉一下modbusRTU 协议的特点。
1) modbus RTU是一种主从、半双工通讯方式协议,整个网络中只能有一个主站存在,主站在modbusRTU网络中没有地址,从站的实际地址范围是1~247
2) modbus RTU协议的报文长度是不固定的,报文与报文之间小间隔是3.5个字符传输时间长度。
3) modbus RTU协议的校验方式是crc校验。
3、modbus库介绍
3.1 主站指令
图3-1
MBUS_CTRL指令:
EN:使能,要保证每一周期都使能(sm0.0)。
Mode:模式选择,1 = modbus协议,0 = PPI协议
Baud:波特率设定。
Parity:字符校验,0 = 无校验;1 = 奇校验;2 = 偶校验
Timeout:超时。主站等待从站响应的时间,以毫秒为单位,允许设置范围为1~32767.
Done:初始化完成标志位,初始化完成此位自动置1。
Error:如果初始化错误,存放错误代码。
图3-2
MBUS_MSG指令:
EN:使能,同一时刻只能有一个读写功能。
First:读写请求,要使用沿触发。
Slave:从站地址,范围1 ~247
RW:读写操作,0 = 读,1 = 写。
Addr:读写从站的数据地址。
Count:数据个数(位或者字的个数)。注意大数据量为120个字。
DataPtr:数据缓冲区首地址(指针类型)。如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。
Done:读写功能完成位。功能完成此为置1。
Error:读写功能错误代码。Done位为1时有效。
3.2 从站指令
图3-3
MBUS_INIT指令:
EN:初始化,扫描执行一次(SM0.1)
Mode:模式,0 = PPI,1 = Modbus
Addr:从站地址,取值1 ~247。
Baud:波特率。
Parity:奇偶校验。
Delay:附加字符间延时。
MaxAIQ:参与通信的大I/O点数,S7-200的I/O映像区为128/128缺省值为128。
MaxAI:参与通信的大AI通道数。
MaxHold:参与通信的V存储区字节(VW)。
HoldStart:保持寄存器区起始地址(指针形式)。
Done:初始化完成标志位。
Error:如果初始化错误存放错误代码。
图3-4
MBUS_SLAVE指令:
EN:使能。每次扫描执行(sm0.0)
Done:通讯中时置1,不处于通讯过程中时为0。
Error:存放错误代码, 0 = 无错误。
6ES7288-1SR30-0AA1|秦皇岛西门子PLC代理商 6ES7288-1SR30-0AA1|秦皇岛西门子PLC代理商