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)西门子保内全新原装产品质保一年。一年内因产品质量问题免费更换新产品;不收取任何费。欢迎致电咨询。