全国服务热线 15021292620

Modbus 主站执行错误代码

发布:2023-02-17 16:53,更新:2023-11-04 06:00

Modbus 主站执行错误代码

编号高的错误代码(从 101 开始)是 Modbus 从站设备返回的错误。 这些错误表明从站 不支持所请求的功能,或者 Modbus 从站设备支持不所请求的地址(即,数据类型或地址 范围)。 编号小的错误代码(1 到 12)是由 MBUS_MSG 指令检测到的错误。 这些错误代码通常 表明 MBUS_MSG 指令的输入参数有问题,或接收从站响应时出现问题。 奇偶校验和 CRC 错误表明有响应但未正确接收数据。 这通常是电气故障(例如连接有问题或电气噪 声)引起的。

Modbus RTU 从站

使用 Modbus 从站指令

要在 S7-200 SMART 程序中使用 Modbus 从站指令,请执行以下步骤: 1. 在程序中插入 MBUS_INIT 指令,并仅执行 MBUS_INIT 指令一个扫描周期。 可以使 用 MBUS_INIT 指令初始化或更改通信参数。 插入 MBUS_INIT 指令时,会在程序中 自动添加若干隐藏的子例程和中断例程。 2. 在“文件”(File) 菜单功能区的“库”(Libraries) 区域中,单击“存储器”(Memory) 按钮 ,指定 Modbus 库所需的 V 存储器的起始地址。 或者,也可在项目树中右键 单击“程序块”(Program Block) 节点,并从上下文菜单中选择“库存储器”(Library  Memory)。 除了这个 V 存储器块之外,还可以使用 MBUS_INIT 的 HoldStart 和 MaxHold 参数定义另一个存储器块。 注意,V 存储器中的程序分配不要重叠。 如果存 储区重叠,则 MBUS_INIT 指令将返回错误。 3. 在程序中仅添加一条 MBUS_SLAVE 指令。 每次扫描时均应调用该指令,以处理收到 的所有请求。 4. 用通信电缆连接通过 MBUS_INIT 端口参数分配的 S7-200 SMART CPU 端口和 Modbus 主站设备。

累加器(AC0、AC1、AC2、AC3)由 Modbus 从站指令使用,并显示在“交叉引用”列表 中。 在执行 Modbus 从站指令前,系统会先保存 Modbus 从站指令累加器中的值,在 Modbus 从站指令完成前恢复到累加器中,从而确保在执行 Modbus 从站指令时保留累加 器中的所有用户数据。

Modbus 从站指令支持 Modbus RTU 协议。 这些指令利用 S7-200 SMART CPU 的自由 端口功能支持常用的 Modbus 功能。 支持以下 Modbus 功能:

功能 说明 1 读取单个/多个线圈(离散量输出)状态。 功能 1 返回任何数量输出点 (Q)  的开/关状态。 2 读取单个/多个触点(离散量输入)状态。 功能 2 返回任何数量输入点 (I) 的 开/关状态。 3 读取单个/多个保持寄存器。 功能 3 返回 V 存储器的内容。 保持寄存器在 Modbus 中是字值,允许您在一次请求中读取多达 120 个字。 4 读取单个/多个输入寄存器。 功能 4 返回模拟量输入值。 5 写入单个线圈(离散量输出)。 功能 5 将离散量输出点设置为指定值。 系 统不强制该输出点,程序可以覆盖 Modbus 请求写入的值。 6 写入单个保持寄存器。 功能 6 将单个保持寄存器值写入 S7-200 SMART 的 V 存储器中。 15 写入多个线圈(离散量输出)。 功能 15 将离散量输出值写入 S7-200  SMART 的 Q 映象寄存器。 起始输出点必须始于字节边界(例如,Q0.0 或 Q2.0),写入的输出数必须是八的倍数。 这是对 Modbus 从站协议指令的一 个限制。 系统不强制这些输出点,程序可以覆盖 Modbus 请求写入的值。 16 写入多个保持寄存器。 功能 16 将多个保持寄存器写入 S7-200 SMART 的 V  存储器。 在一个请求中多可写入 120 个字。

“模式”(Mode) 输入的值用于选择通信协议:输入值为 1 时,分配 Modbus 协议并启用该 协议;输入值为 0 时,分配 PPI 协议并禁用 Modbus 协议。 参数“地址”(Addr) 将地址设置为 1 至 247 之间(包括边界)的值。 参数“波特”(Baud) 将波特率设置为 1200、2400、4800、9600、19200、38400、57600  或 115200。 参数“奇偶校验”(Parity) 应设置为与 Modbus 主站的奇偶验校相匹配。所有设置使用一个 停止位。接受的值如下:0(无奇偶校验)、1(奇校验)和 2(偶校验)。 参数“端口”(Port) 设置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可选信号板上的 RS-485 或 RS-232)。 参数“延时”(Delay) 通过使标准 Modbus 信息超时时间增加分配的毫秒数来延迟标准 Modbus 信息结束超时条件。在有线网络上运行时,该参数的典型值应为 0。如果使用具 有纠错功能的调制解调器,则将延时设置为 50 至 100 ms 之间的值。如果使用扩频无线 通信,则将延时设置为 10 至 100 ms 之间的值。“延时”(Delay) 值可以是 0 至 32767  ms。 参数 MaxIQ 用于设置 Modbus 地址 0xxxx 和 1xxxx 可用的 I 和 Q 点数,取值范围是 0 至 256。值为 0 时,将禁用所有对输入和输出的读写操作。建议将 MaxIQ 值设置为 256。 参数 MaxAI 用于设置 Modbus 地址 3xxxx 可用的字输入 (AI) 寄存器数,取值范围是 0 至 56。值为 0 时,将禁止读取模拟量输入。建议将 MaxAI 设置为以下值,以允许访问所有 CPU 模拟量输入: ● 0 (CPU CR40) ● 56(所有其它 CPU 型号) 参数 MaxHold 用于设置 Modbus 地址 4xxxx 或 4yyyyy 可访问的 V 存储器中的字保持寄 存器数。例如,如果要允许 Modbus 主站访问 2000 个字节的 V 存储器,请将 MaxHold  的值设置为 1000 个字(保持寄存器)。 参数 HoldStart 是 V 存储器中保持寄存器的起始地址。该值通常设置为 VB0,因此参数 HoldStart 设置为 &VB0(地址 VB0)。也可将其它 V 存储器地址指定为保持寄存器的起 始地址,以便在项目中的其它位置使用 VB0。Modbus 主站可访问起始地址为 HoldStart,字数为 MaxHold 的 V 存储器。 MBUS_INIT 指令完成时,“完成”(Done) 输出接通。 “错误”(Error) 输出字节包含指令的执行结果。仅当“完成”(Done) 接通时,该输出才有效。 如果“完成”(Done) 关闭,则错误参数不会改变。


西门子触摸屏授权总代理商,西门子触摸屏授权一级代理商,西门子模块授权一级代理商,西门子CPU模块一级代理商

西门子交换机模块,西门子电源模块代理商,西门子逻辑控制模块                        

西门子伺服电机模块代理商,西门子DP电缆代理商,西门子变频器代理商

西门子PLC模块授权一级代理商,西门子电线电缆授权代理商,西门子S7-200系列代理商

SIEMENS西门子模块授权一级代理商



联系方式

  • 地址:上海 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 电话:15021292620
  • 销售:颜娟
  • 手机:15021292620
  • 传真:021-33556143
  • 微信:X15021292620
  • QQ:2799536152
  • Email:2799536152@qq.com
产品分类