Modbus RTU 主站
modbus rtu 主站
使用 modbus 主站指令
步骤
要在 s7-200 smart 程序中使用 modbus rtu 主站指令,请执行以下步骤: 1. 在程序中插入 mbus_ctrl 指令,并在每次扫描时执行 mbus_ctrl。 您可以使用 mbus_ctrl 指令启动或更改 modbus 通信参数。 当您插入 mbus_ctrl 指令时, 会在程序中自动添加几个受保护的子例程和中断例程。 2. 在“文件”(file) 菜单功能区的“库”(libraries) 区域中,单击“存储器”(memory) 按钮 ,指定 modbus 库所需的 v 存储器的起始地址。 或者,也可在项目树中右键 单击“程序块”(program block) 节点,并从上下文菜单中选择“库存储器”(library memory)。 3. 在程序中放置一条或多条 mbus_msg 指令。 可以根据需要在程序中添加任意数量的 mbus_msg 指令,但某一时间只能有一条指令处于激活状态。 4. 用通信电缆连接通过 mbus_ctrl 端口参数分配的 s7-200 smart cpu 端口和 modbus 从站设备。
注意
防止意外电流
互连参考电位不同的设备可能导致意外电流从互连电缆中流过。 这些意外电流可能 导致通信错误或设备损坏。 确保所有用通信电缆连接的设备均具有共同的电路参考点或已隔离,以避免产生意外 电流。
modbus 主站指令使用如下显示的 modbus 功能读取或写入特定的 modbus 地址。 modbus 从站设备必须支持读取或写入特定 modbus 地址所需的 modbus 功能。
必须在每次扫描时(包括扫描)调用 mbus_ctrl 指令,以便其监视 mbus_msg 指令启动的任何待处理消息的进程。除非每次扫描时都调用 mbus_ctrl,否则 modbus 主站协议将不能正确工作。
“模式”(mode) 输入的值用于选择通信协议。输入值为 1 时,将 cpu 端口分配给 modbus 协议并启用该协议。输入值为 0 时,将 cpu 端口分配给 ppi 系统协议并禁用 modbus 协 议。 参数“奇偶校验”(parity) 应设置为与 modbus 从站设备的奇偶校验相匹配。所有设置使用 一个起始位和一个停止位。允许的值如下:0(无奇偶校验)、1(奇校验)和 2(偶校 验)。 参数“端口”(port)设置物理通信端口(0 = cpu 中集成的 rs-485,1 = 可选 cm01 信号板 上的 rs-485 或 rs-232)。 参数“超时”(timeout) 设为等待从站做出响应的毫秒数。“超时”(timeout) 值可以设置为 1 ms 到 32767 ms 之间的任何值。典型值是 1000 ms (1 s)。“超时”(timeout) 参数应设置 得足够大,以便从站设备有时间在所选的波特率下做出响应。 “超时”(timeout) 参数用于确定 modbus 从站设备是否对请求做出响应。“超时”(timeout) 值决定着 modbus 主站设备在发送请求的后一个字符后等待出现响应的个字符的时 长。如果在超时时间内至少收到一个响应字符,则 modbus 主站将接收 modbus 从站设 备的整个响应。 mbus_ctrl 指令完成时,“完成”(done) 输出接通。 “错误”(error) 输出包含指令执行的结果。 另请参见 modbus 主站执行错误代码 (页 475)
mbus_msg 指令
en 输入和“个”(first) 输入同时接通时,mbus_msg 指令会向 modbus 从站发起主 站请求。 发送请求、等待响应和处理响应通常需要多个 plc 扫描时间。 en 输入必须接 通才能启用请求的发送,并且应该保持接通状态,直到“完成”(done) 位接通。 某一时间只能有一条 mbus_msg 指令处于激活状态。 如果启用多条 mbus_msg 指 令,将处理执行的条 mbus_msg 指令,所有后续 mbus_msg 指令将中止并生成 错误代码 6。
有新请求要发送时,参数“个”(first) 会接通,并仅保持一个扫描周期。 个输入应 通过沿检测元素(例如,上升沿)以脉冲方式接通,这将导致请求被发送一次。 有关详 细信息,请参见示例程序。
参数“从站”(slave) 是 modbus 从站设备的地址。 允许的范围是 0 至 247。地址 0 是广播 地址,只能用于写请求。 系统不响应对地址 0 的广播请求。不是所有从站设备都支持广 播地址。 s7-200 smart modbus 从站库不支持广播地址。 参数 rw 分配是读取还是写入该消息。 “读写”(rw) 允许使用以下两个值: 0(读取)和 1(写入)。 离散量输出(线圈)和保持寄存器支持读请求和写请求。 离散量输入(触点)和输入寄 存器仅支持读请求。 参数地址 (addr) 是起始 modbus 地址。 允许的取值范围如下: ● 对于离散量输出(线圈),为 00001 至 09999 ● 对于离散量输入(触点),为 10001 至 19999 ● 对于输入寄存器,为 30001 至 39999 ● 对于保持寄存器,为 40001 至 49999 和 400001 至 465535 “地址”(addr) 的实际取值范围取决于 modbus 从站设备所支持的地址。 参数“计数”(count) 用于分配要在该请求中读取或写入的数据元素数。 “计数”(count) 值是 位数(对于位数据类型)和字数(对于字数据类型)。 ● 对于地址 0xxxx,“计数”(count) 是要读取或写入的位数 ● 对于地址 1xxxx,“计数”(count) 是要读取的位数 ● 对于地址 3xxxx,“计数”(count) 是要读取的输入寄存器字数 ● 对于地址 4xxxx 或 4yyyyy,“计数”(count) 是要读取或写入的保持寄存器字数 mbus_msg 指令多读取或写入 120 个字或 1920 个位(240 个字节的数据)。 “计 数”(count) 的实际限值取决于 modbus 从站设备的限制。 参数 dataptr 是间接地址指针,指向 cpu 中与读/写请求相关的数据的 v 存储器。 对于 读请求,dataptr 应指向用于存储从 modbus 从站读取的数据的个 cpu 存储单元。 对于写请求,dataptr 应指向要发送到 modbus 从站的数据的个 cpu 存储单元。 dataptr 值以间接地址指针形式传递到 mbus_msg。 例如,如果要写入到 modbus 从站 设备的数据始于 cpu 的地址 vw200,则 dataptr 的值将为 &vb200(地址 vb200)。 指针必须始终是 vb 类型,即使它们指向字数据。modbus 库指令
保持寄存器(地址 4xxxx 或 4yyyyy)和输入寄存器(地址 3xxxx)是字值(2 个字节或 16 个位)。 cpu 字的格式与 modbus 寄存器相同。 编号较小的 v 存储器地址是寄存器 的高有效字节。 编号较大的 v 存储器地址是寄存器的低有效字节。 下表显示了 cpu 字节和字寻址如何与 modbus 寄存器格式相对应。
以压缩字节形式读写位数据(地址 0xxxx 和 1xxxx)区域,也就是说,8 位压缩成 一个数据字节。 个数据字节的低 有效位是寻址的位号(参数“地 址”(addr))。 如果仅写入单个位,则该 位必须是 dataptr 指向的字节的低有效 位。 压缩字节的格式(离散量输入地址) 对于不是从偶数字节边界开始的位数据 地址,与起始地址对应的位必须是字节 的低有效位。 请参见从 modbus 地址 10004 开始的 3 个位的压缩字节格式示
压缩字节的格式(从地址 10004 开始的离散量 输入) 向离散量输出数据类型(线圈)执行写操作时,用户需要将这些位置于压缩字节内的正确 位位置,然后通过 dataptr 将数据传递到 mbus_msg 指令。 发送请求和接收响应时,“完成”(done) 输出关闭。 响应完成或 mbus_msg 指令因错误 中止时,“完成”(done) 输出接通。
仅当“完成”(done) 输出接通时,“错误”(error) 输出才有效。 另请参见 modbus 主站执行错误代码 (页 475)
6es72121be400xb0 | cpu 1212c ac/dc/rly,8输入/6输出,集成2ai |
6es72121ae400xb0 | cpu 1212c dc/dc/dc,8输入/6输出,集成2ai |
6es72121he400xb0 | cpu 1212c dc/dc/rly,8输入/6输出,集成2ai |
6es72171ag400xb0 | cpu 1217c dc/dc/dc,14输入/10输出,集成2ai/2ao |
6es72141bg400xb0 | cpu 1214c ac/dc/rly,14输入/10输出,集成2ai |
6es72141ag400xb0 | cpu 1214c dc/dc/dc,14输入/10输出,集成2ai |
6es72141ag400xb0 | cpu 1214c dc/dc/dc,14输入/10输出,集成2ai |
6es72141hg400xb0 | cpu 1214c dc/dc/rly,14输入/10输出,集成2ai |
6es72151bg400xb0 | cpu 1215c ac/dc/rly,14输入/10输出,集成2ai/2ao |
6es72151ag400xb0 | cpu 1215c dc/dc/dc,14输入/10输出,集成2ai/2ao |
我公司经营西门子全新原装现货plc;s7-200s7-300 s7-400 s7-1200 触摸屏,变频器,6fc,
6sns120 v10 v60 v80伺服数控备件:原装进口电机(1la7、1lg4、1la9、1le1),国产电机(1lg0,1le0)
大型电机(1la8,1la4,1pq8)伺服电机(1ph,1pm,1ft,1fk,1fs)西门子保内全新原装产品质保一年。一年内因产品质量问题免费更换新产品;不收取任何费。欢迎致电咨询。
- 供应商
- 浔之漫智控技术(上海)有限公司总部
- 联系电话
- 15021292620
- 手机号
- 15021292620
- 销售
- 颜娟
- 所在地
- 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室