- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S7-200的modbus rtu 通讯
MODBUS RTU协议简介
MODBUS RTU库的使用
两台PLC之间的MODBUS RTU通讯
西门子PLC与台达变频器之间的MODBUS RTU通讯
MODBUS 协议简介
Modbus通信协议分为串行链路的和基于TCP/IP的;
Modbus串行链路协议只有一个主站,可以有1---247个从站。只能主站发起。
Modbus串行电气规范:RS485(长距离传输),和RS232(短距离传输)。
Modbus 传输模式:
传输的时候实际上是按这种格式发送信息,CRC叫循环冗余校验,LRC叫纵向冗余校验。
ASCⅡ
地址
功能代码
数据数量
数据1
……
数据N
LRC高字节
LRC低字节
回车
换行
RTU
地址
功能代码
数据数量
数据1
……
数据N
CRC高字节
CRC低字节
回车
换行
MODBUS 协议简介
Modbus主站寻址
00001 到09999是离散输出(线圈)
假设输出:QX.Y;
最高位:Q=0;
寻址计算:X*8+Y+1(低位顺排);
中间补零;
10001至19999是离散输入(触点):I=1
30001至39999是输入寄存器(通常模拟量)
假设模拟量:AIWN;
最高位:AIW=3;
寻址计算:(N+2)/2(N必为偶数);
中间补零;
40001至49999是保持寄存器(V(W)存储区):同3
注:模拟量和V区都只能写一个字,不能写双字。
MODBUS 协议库的使用
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 主设备协议将不能正确运行。
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 秒)。 “ 超时” 参数应该设置的足 够大,以便从站有时间对所选的波率做出应答。
MODBUS 协议库的使用
Done: MBUS_CTRL 指令成功完成时, “ 完成” 输出为 1,否则为 0。
Error:“错误”输出代码。“错误”输出代码由反应执行该指令的结果的特定数字构成。 “ 错 误” 输出代码的含义如下:
MODBUS 协议库的使用
MBUS_MSG 指令(或用于端口 1 的 MBUS_MSG_P1 )用于启动对 Modbus 从站的请求并处理应 答, 单条 MSG 指令只能完成对指定从站的读或写请求。
当 EN 输入和“首次”输入都为 1 时, BUS_MSG 指令启动对 Modbus 从站的请求。发送请 求、等待应答、并处理应答通常需要多次扫描。 EN 输入必须打开以启用请求的发送,并应该保持 打开直到“完成”位被置位。
必须注意的是,一次只能激活一条 MBUS_MSG 指令。如果启用了多条 MBUS_MSG 指令,则将处理所执行的第一条 MBUS_MSG 指令,之后的所有 MBUS_MSG 指令将中止并产生错误代码 6。
MODBUS 协议库的使用
EN:指令使能位。
Firs
文档评论(0)