西门子伺服电机一级经销代理商
其产品范围包括西门子S7-SMART200、S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP等各类工业自动化产品。西门子授权代理商、西门子一级代理商 西门子PLC模块代理商﹐西门子模块代理商供应全国范围:
与此同时,我们还提供西门子G120、G120C V20 变频器; S120 V90伺服控制系统;6EP电源;电线;电缆;
网络交换机;工控机等工业自动化的设计、技术开发、项目选型安装调试等相关服务。
西门子中国授权代理商——湖南西控自动化设备有限公司,本公司坐落于湖南省中国(湖南)自由贸易试验区长沙片区开元东路 1306 号开
阳智能制造产业园一期 4 栋 30市内外连接,交通十分便利。
公司国际化工业自动化科技产品供应商,是专业从事工业自动化控制系统、机电一体化装备和信息化软件系统
集成和硬件维护服务的综合性企业。与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。
目前,湖南西控自动化设备有限公司将产品布局于中、高端自动化科技产品领域,
PLC模块S7-200、S7-1200、S7-300、S7-400、ET200分布式I/O等
HMI触摸屏、SITOP电源、6GK网络产品、ET200分布式I/O SIEMENS 驱动产品MM系列变频器、G110G120变频器、直流调速器、电线电缆、
驱动伺服产品、数控设备SIEMENS低压配电与控制产品及软起动器等
程序将 DataPtr 值以间接地址指针的形式传递到 MBUS_MSG/MB_MSG2。例如,如果要写入 到 Modbus从站设备的数据始于 CPU 的地址 VW200,则 DataPtr 的值将为 &VB200(地址 VB200)。指针必须始终是VB 类型,即使它们指向字数据。 存储器布局 保持寄存器(地址 4xxxx 或 4yyyyy)和输入寄存器(地址3xxxx)是字值(2 个字节或 16 个 位)。CPU 字的格式与 Modbus 寄存器相同。编号较小的 V存储器地址是寄存器的*高有效 字节。编号较大的 V 存储器地址是寄存器的*低有效字节。下表显示了 CPU 字节和字寻址 如何与Modbus 寄存器格式相对应。 表格 10-7 Modbus 保持寄存器 CPU 存储器字节地址 CPU 存储器字地址 Modbus保持寄存器地址 地址 十六进制数据 地址 十六进制数据 地址 十六进制数据 VB200 12 VW200 12 34 40001 1234 VB201 34 VB202 56 VW202 56 78 40002 56 78 VB203 78 VB204 9AVW204 9A BC 40003 9A BC VB205 BC CPU 以压缩字节形式读写位数据(地址 0xxxx 和1xxxx)区域;也就是说,每个 字节由 8 位数据构成。第一个数据字节的 *低有效位是寻址的位号(参数“地址”(Addr))。如果打算仅写入单个位,则必 须将该位设置为 DataPtr 指向的字节的* 低有效位 (Vx.0)。 9[ 9[ 压缩字节的格式(离散量输入地址) 对于不是从字节边界开始的位数据地址, 必须将与起始地址对应的位设置为字节的 *低有效位。请参见从Modbus 地址 10004 开始的 3 个位的压缩字节格式示 向离散量输出数据类型(线圈)执行写操作时,必须将这些位置于压缩字节内的正确位位置,然后通过 DataPtr 将数据传递到 MBUS_MSG/MB_MSG2 指令。 输出在程序已发送请求之后、程序接收响应之前,Done 输出为 FALSE。响应完成或 MBUS_MSG/ MB_MSG2指令因错误中止时,Done 输出为 TRUE。 仅当 Done 输出为 TRUE 时,Error 输出 (页 551)才有效。10.3.2.4 Modbus RTU 主站执行错误代码 编号高的错误代码(从 101 开始)是 Modbus从站设备返回的错误。这些错误表明从站不 支持所请求的功能,或者 Modbus 从站设备支持不所请求的地址(即,数据类型或地址范 围)。编号小的错误代码(1 到 12)是由 MBUS_MSG 指令检测到的错误。这些错误代码通常表明 MBUS_MSG指令的输入参数有问题,或接收从站响应时出现问题。奇偶校验和 CRC 错误表明有响应但未正确接收数据。这通常是电气故障(例如连接有问题或电气噪声)引起的。 MBUS_CTR L 错误代码 说明 0 无错误 1奇偶校验类型无效 2 波特率无效 3 超时无效 4 模式无效 9 端口号无效 10 信号板端口 1 缺失或未组态 MBUS_MSG错误代码 说明 0 无错误 1 响应存在奇偶校验错误:仅当使用偶校验或奇校验时,才会出现该错误。传输受到干扰,并且可能收到不正确的数据。该错误通常是电气故障(例如, 接线错误或影响通信的电气噪声)引起的未使用 3接收超时:在超时时间内从站没有做出响应。可能原因为:与从站设备的电气连接存在问题、主站和从站的波特率/奇偶校验的设置不同、从站地址错误。 4请求参数出错:一个或多个输入参数(“从站”(Slave)、“读写”(RW)、“地 址”(Addr)或“计数”(Count))被设置为非法值。有关输入参数的允许值的信 息,请参见本文档。 5 未启用 Modbus主站:每次扫描时,在调用 MBUS_MSG 之前调用 MBUS_CTRL。 6 Modbus 正忙于处理另一请求:某一时间只能有一条MBUS_MSG 指令处于 激活状态。 7 响应出错:收到的响应与请求不符。这意味着从站设备有问题或错误的从站 设备对请求做出了应答。8 响应存在 CRC 错误:传输受到干扰,并且可能收到不正确的数据。该错误通常是电气故障(例如,接线错误或影响通信的电气噪声)引起的。 11 端口号无效 12 信号板端口 1 缺失或未组态 101从站不支持该地址的请求功能:请参见“使用 Modbus 主站指令”帮助主题 中的所需 Modbus 从站功能支持表。 102从站不支持数据地址:“地址”(Addr) 加上“计数”(Count) 的请求地址范围 超出从站允许的地址范围。 103从站不支持数据类型:从站设备不支持“地址”(Addr) 类型。 104 从站设备故障 105从站接受消息,但未按时做出响应:MBUS_MSG 发生错误,用户程序应在 稍后重新发送请求。 106从站繁忙,拒绝了消息:可以再次尝试相同的请求以获得响应。 107 从站因未知原因拒绝了消息。 108从站存储器奇偶校验错误:从站设备有故障。 使用 Modbus RTU从站指令 步骤 要在 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-200SMART 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 返回 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 个字。 10.3.3.2 MBUS_INIT 指令(初始化从站) 表格 10-8MBUS_INIT 指令 LAD/FBD STL 说明 CALL MBUS_INIT, Mode, Addr, Baud,Parity, Port, Delay, MaxIQ, MaxAI, MaxHold, HoldStart, Done, ErrorMBUS_INIT 指令用于启用,初始化或禁用 Modbus 通信。在使用 MBUS_SLAVE 指令 之前,必须先无错误地执行MBUS_INIT。 该指令完成后,立即置位“完成”(Done) 位,然后继续执行下一条指令。 EN输入接通时,会在每次扫描时执行该指 令。 次通信状态改变时程序必须执行 MBUS_INIT 指令一次。因此,EN输入以脉冲方式通过边 沿检测元素,或者仅在首次扫描时执行 MBUS_INIT。 表格 10-9 MBUS_INIT 参数 输入/输出数据类型 操作数 Mode、Addr、Parity、Port BYTEVB、IB、QB、MB、SB、SMB、LB、AC、常数、*VD、 *AC、*LD Baud、HoldStart DWORDVD、ID、QD、MD、SD、SMD、LD、AC、常数、*VD、 *AC、*LD Delay、MaxIQ、MaxAI、 MaxHoldWORD VW、IW、QW、MW、SW、SMW、LW、AC、常数、 *VD、*AC、*LD Done BOOLI、Q、M、S、SM、T、C、V、L Error BYTE VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD“模式”(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 CR20s、CR30s、CR40s 和 CR60s) •56(所有其它 CPU 型号)