电机监控器数据采集Word格式.docx
《电机监控器数据采集Word格式.docx》由会员分享,可在线阅读,更多相关《电机监控器数据采集Word格式.docx(7页珍藏版)》请在冰豆网上搜索。
![电机监控器数据采集Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/24/c38c5da7-531b-49aa-abcb-8a57c8d5e9b0/c38c5da7-531b-49aa-abcb-8a57c8d5e9b01.gif)
MBUS_CTRL_P1初始化PLC的Modbus通讯
网络2、3:
实现PLC对电表1、2循环间隔读取数据,每个200ms读取一个电表数据(注:
各个电表不可实现同时读取数据)
网络4、5:
计数为0时读取电表1(此处地址为3),将所得数据储存到VB200起(之后的数据空间);
计数为1时读取电表2(此处地址为4),将所得数据储存到VB200起(之后的数据空间)。
注:
此处MBUS_MSG_P1中的各个功能可在s7-200帮助中查询学习,或到S7-200Modbus通信PPT文档中查询学习。
5.编译,保存,下载到PLC中进行状态表监控.
6.附注:
西门子Modbus主站协议库包括两条指令:
MBUS_CTRL指令和MBUS_MSG指令。
MBUS_CTRL指令用于初始化主站通信,MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。
MBUS_CTRL指令用于S7—200端口0的MBUS_CTRL指令(或用于端口1的MBUS_CTRL_P1指令)可初始化、监视或禁用Modbus通讯。
在使用MBUS_MSG指令之前,必须正确执行MBUS_CTRL指令.指令完成后立即设定“完成”位,才能继续执行下一条指令.
MBUS_CTRL指令在每次扫描且EN输入打开时执行。
MBUS_CTRL指令必须在每次扫描时(包括首次扫描)被调用,以允许监视随MBUS_MSG指令启动的任何突出消息的进程。
除非每次调用MBUS_CTRL,否则Modbus主设备协议将不能正确运行。
EN:
指令使能位。
Mode:
“模式"
参数.“模式"
输入数值选择通讯协议。
输入值1将CPU端口分配给Modbus协议并启用该协议。
输入值0将CPU端口分配给PPI系统协议,并禁用Modbus协议。
Baud:
“波特率”参数.MBUS_CTRL指令支持的
波特率为1200、2400、4800、9600、19200、38400、
57600或115200bit/s。
Parity:
“奇偶校验"
参数。
参数被设为与Modbus从站奇偶校验相匹配。
所有设置使用一个起始位和一个停止位。
可接受的数值为:
0无奇偶校验
1奇校验
2偶校验
Timeout:
“超时”参数。
“超时"
参数设为等待来自从站应答的毫秒时间数。
数值可以设置的范围为1毫秒到32767毫秒。
典型值是1000毫秒(1秒)。
“超时”参数应该设置的足够大,以便从站有时间对所选的波特率作出应答。
Done:
MBUS_CTRL指令成功完成时,
“完成”输出为1,否则为0。
Error:
“错误”输出代码。
“错误”输出代码由反应执行该指令的结果的特定数字构成.
“错误”输出代码的含义如下:
•0无错误
•1奇偶校验选择无效
•2波特率选择无效
•3超时选择无效
•4模式选择无效
MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。
当EN输入和“首次”输入都为1时,BUS_MSG指令启动对Modbus从站的请求.发送请求、等待应答、并处理应答通常需要多次扫描。
EN输入必须打开以启用请求的发送,并应该保持打开直到“完成”位被置位。
•
必须注意的是,一次只能激活一条MBUS_MSG指令。
如果启用了多条MBUS_MSG指令,则将处理所执行的第一条MBUS_MSG指令,之后的所有MBUS_MSG指令将中止并产生错误代码6。
First:
“首次”参数。
“首次”参数应该在有新请求要发送时才打开以进行一次扫描.“首次"
输入应当通过一个边沿检测元素(例如上升沿)打开,这将导致请求被传送一次.
Slave:
“从站"
“从站”参数是Modbus从站的地址。
允许的范围是0到247。
地址0是广播地址,只能用于写请求。
不存在对地址0的广播请求的应答。
并非所有的从站会支持广播地址,S7—200Modbus从站协议库不支持广播地址。
RW:
“读写”参数。
“读写"
参数指定是否要读取或写入该消息。
“读写”参数允许使用下列两个值:
0-—读,1--写。
Addr:
“地址”参数。
“地址”参数是起始的Modbus地址.
允许使用下列取值范围:
00001至09999是离散输出(线圈)
10001至19999是离散输入(触点)
30001至39999是输入寄存器
40001至49999是保持寄存器
其中离散输出(线圈)和保持寄存器支持读取和写入请求,而离散输入(触点)和输入寄存器仅支持读取请求。
“地址"
的具体值应与Modbus从站支持的地址一致。
Count:
“计数"
“计数”参数指定在该请求中读取或写入的数据元素的数目。
“计数”数值是位数(对于位数据类型)和字数(对于字数据类型).
根据Modbus协议,“计数”参数与Modbus地址
存在以下对应关系:
MBUS_MSG指令将读取或写入最大120个字或1920个位(240字节的数据)。
“计数”的实际限值还取决于Modbus从站中的限制。
DataPtr:
“DataPtr"
参数。
“DataPtr”参数是指向S7-200CPU的V存储器中与读取或写入请求相关的数据的间接地址指针。
对于读取请求,DataPtr应指向用于存储从Modbus从站读取的数据的第一个CPU存储器位置。
对于写入请求,DataPtr应指向要发送到Modbus从站的数据的第一个CPU存储器位置。
完成输出。
完成输出在发送请求和接收应答时关闭。
“完成”输出在应答完成或MBUS_MSG指令因错误而中止时打开。
“错误”输出仅当“完成”输出打开时有效.低位编号的错误代码(1到8)是由MBUS_MSG指令检测到的错误.这些错误代码通常指示与MBUS_MSG指令的输入参数有关的问题,或接收来自从站的应答时出现的问题.奇偶校验和CRC错误指示存在应答但是数据未正确接收.这通常是由电气故障(例如连接有问题或者电噪声)引起的.
高位编号的错误代码(从101开始)是由Modbus从站返回的错误。
这些错误指示从站不支持所请求的功能,或者所请求的地址(或数据类型或地址范围)不被Modbus从站支持.