西门子工业自动化一级经销代理商
其产品范围包括西门子S7-SMART200、S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP等各类工业自动化产品。西门子授权代理商、西门子一级代理商 西门子PLC模块代理商﹐西门子模块代理商供应全国范围:
我们还提供西门子G120、G120C V20 变频器; S120 V90伺服控制系统;6EP电源;电线;电缆;
网络交换机;工控机等工业自动化的设计、技术开发、项目选型安装调试等相关服务。
西门子中国授权代理商——浔之漫智控技术(上海)有限公司,本公司坐落于松江工业区西部科技园,西边和全球**芯片制造商台积电毗邻,
东边是松江大学城,向北5公里是佘山国家旅游度假区。轨道交通9号线、沪杭高速公路、同三国道、松闵路等
交通主干道将松江工业区与上海市内外连接,交通十分便利。
公司国际化工业自动化科技产品供应商,是专业从事工业自动化控制系统、机电一体化装备和信息化软件系统
集成和硬件维护服务的综合性企业。与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。
目前,浔之漫智控技术(上海)有限公司将产品布局于中、高端自动化科技产品领域,
PLC模块S7-200、S7-1200、S7-300、S7-400、ET200分布式I/O等
HMI触摸屏、SITOP电源、6GK网络产品、ET200分布式I/O SIEMENS 驱动产品MM系列变频器、G110G120变频器、直流调速器、电线电缆、
驱动伺服产品、数控设备SIEMENS低压配电与控制产品及软起动器等
odbus RTU 主站示例程序 该示例程序显示了每当输入 I0.0 接通时,如何使用 Modbus 主站指令对 Modbus从站的四 个保持寄存器执行读写操作。 CPU 会将从 VW100 开始的四个字写入 Modbus 从站从地址 40001开始的保持寄存器。 CPU 随后会读取 Modbus 从站从 40010 到 40013 的四个保持寄存器,并将数据存入 CPU 中从 VW200 开始的 V 存储器中。 本示例使用单个主站及 MBUS_CTRL 和 MBUS_MSG指令。同一理念对使用第二个主站及 MB_CTRL2 和 MB_MSG2 指令的示例同样适用。说明 程序段 1 通过在每次扫描时调用MBUS_CTRL 来初始化和监视 Modbus 主站。Modbus 主站设为 9.6 Kbps,无奇偶校 验。从站设备允许在1000 毫秒(1 秒)内进行响应。 程序段 2 第一次扫描时,复位用于两条 MBUS_MSG 指令的启用 标记(M2.0 和M2.1)。 程序段 3 当 I0.0 从关闭变为接通时,设置第一条 MBUS_MSG 指令的启用标志 (M2.0)。 程序段 4当第一个启用标志 (M2.0) 接通时,调用 MBUS_MSG 指令。只需为启用该指令的第一次扫描设置 First 参 数。该指令会对从站 2 的 4 个保持寄存器执行写入 (RW = 1) 操作。从 CPU 中的 VB100-VB107(4 个字)获取写数据,写入到 Modbus 从站中的地址 40001 - 40004。 程序段 5 第一条 MBUS_MSG指令完成后(“完成”(Done) 位 从 0 变为 1),会清除第一条 MBUS_MSG 指令的启用 标志,设置第二条MBUS_MSG 指令的启用标志。 如果错误 (MB1) 不为零,则置位 Q0.1 显示错 程序段 6 第二个启用标志(M2.1) 接通时,调用第二条 MBUS_MSG 指令。只需为启用该指令的第一次扫描设 置 First 参数。 该指令会对从站 2的 4 个保持寄存器执行读取 (RW = 0) 操作。数据从 Modbus 从站中的地址 40010 - 40013 读取,并复制到CPU 中的 VB200 - VB207(4 个字)。 程序段 7 第二条 MBUS_MSG 指令完成(“完成”(Done) 位从 0变为 1)后,清除第二条 MBUS_MSG 指令的启用标 志。 如果错误 (MB1) 不为零,则置位 Q0.2 显示错误。10.3.5 Modbus RTU **用户信息 概述 本主题包含可供 Modbus RTU主站库的**用户使用的信息。大多数用户不需要此信息,且 不需要修改 Modbus RTU 主站库的默认操作。 重试如果检测到下列任一错误,Modbus 主站指令会自动向从站设备重新发送请求: • 在响应超时时间(MBUS_CTRL/MB_CTRL2指令中的 Timeout 参数)内没有响应(错误代 码 3)。 • 响应字符之间的时间超出允许值(错误代码 3)。 •来自从站的响应中存在奇偶校验错误(错误代码 1)。 • 来自从站的响应中存在 CRC 错误(错误代码 8)。 •返回的功能与请求不符(错误代码 7)。 Modbus 主站在设置 Done 和 Error 输出参数之前重新发送额外两次请求。程序执行MBUS_CTRL/MB_CTRL2 之后,可在 Modbus 主站符号表中找到符号 mModbusRetries并更改该值,以此更改重试次数。mModbusRetries 值为 BYTE 类型,范围 为 0 到 255 次。 字符间超时如果响应中各字符之间的时间超出了分配的时间限制,则 Modbus 主站执行中止来自从站设 备的响应。默认时间设为 100 毫秒,允许Modbus 主站指令通过有线或电话调制解调器用 于大部分从站设备。如果 CPU 检测到此错误,MBUS CTRL/MB_CTRL2指令会在 Error 参数中 返回错误代码 3。 通信时,字符之间可能需要较长的时间,这可能是传输介质(例如电话调制解调器)的原因,也可能是因为从站设备本身需要较长的时间。执行 MBUS_CTRL/MB_CTRL2 之后,可在 Modbus 主站符号表中找到符号mModbusCharTimeout,更改该值,以此延长该超时 时间。mModbusCharTimeout 值是 INT类型,范围为 1 到 30000 毫秒。 单个位与多个位/字写入功能 一些 Modbus 从站设备不支持试用 Modbus功能写入单个离散输出位(Modbus 功能 5)或 写入单个保持寄存器(Modbus 功能6)。这些设备只支持多位写入(Modbus 功能 15)或多寄存器写入(Modbus 功能 16)。如果从站设备不支持单个位/字Modbus 功能, 则 MBUS_MSG/MB_MSG2 指令返回错误代码 101。 Modbus 主站协议允许用户强制MBUS_MSG/MB_MSG2 指令使用多个位/字 Modbus 功能, 而不使用单个位/字 Modbus 功能。程序执行MBUS_CTRL/MB_CTRL2 之后,可在 Modbus 主 站符号表中找到符号 mModbusForceMulti更改该值,以此强制执行多个位/字指令。将 mModbusForceMulti 设为TRUE,以便在写入单个位或寄存器时强制使用多个位/字功能。 累加器用法 Modbus主站指令使用累加器(AC0、AC1、AC2、AC3),它们显示在“交叉引用”列表 中。Modbus主站指令用于保存和恢复累加器中的值。执行指令时,所有 CPU 都会留存累加 器中的所有用户数据。 保持寄存器地址大于 49999Modbus 保持寄存器地址在 40001 到 49999 这一范围内。该范围足以满足大多数应用的要 求,但有些 Modbus从站设备将数据映射到地址范围更大的保持寄存器中。 MBUS_MSG/MB_MSG2 指令允许参数 Addr采用其它范围,用于支持保持寄存器的扩展地址 范围(地址 400001 至 465536)。 例如:要访问保持寄存器16768,MBUS_MSG/MB_MSG2 的 Addr 参数应设为 416768。 扩展寻址允许访问 Modbus 协议支持的全部65536 个可能地址。该扩展寻址仅适用于保持 寄存器。 10.4 Modbus TCP 库 10.4.1 Modbus TCP库功能 Modbus TCP 是通过工业以太网 TCP/IP 网络传输的 Modbus 通信。S7‑200 SMART采用客户端服务器方法,Modbus 客户端设备通过该方法发起与 Modbus 服务器设备的 TCP/IP 连接。建立连接后,客户端向服务器发出请求,服务器将响应客户端的请求。客户端可请求从服务器设备读取部分存储器,或将一定数量的数据写入服务器设备的存储器。如果请求有效,则服务器将响应该请求;如果请求无效,则会回复错误消息。Modbus TCP 客户端协议 Modbus 客户端指令(MBUS_CLIENT) 使用 CPU 的以下资源: • 每次连接至 Modbus服务器,均有一个主动连接资源。MBUS_CLIENT 自动生成连接 ID。 • Modbus 客户端使用以下程序实体: – 1个子程序 – 2849 个字节的程序空间 – V 存储器的 638 字节模块(用于指令符号) 必须从 STEP 7‑Micro/WINSMART 的库存储器命令中为该模块分配起始地址。将 MBUS_CLIENT指令置于程序中后,可从项目树中的“程序块”(Program Block) 或“程 序块 > 库”(Program Block> Library) 文件夹访问库存储器命令。 Modbus TCP 服务器协议 Modbus 服务器指令(MBUS_SERVER) 使用 CPU 的以下资源: • 每次连接至 Modbus服务器,均有一个被动连接资源。MBUS_SERVER 自动生成连接 ID。 • Modbus 服务器使用下列程序实体: – 1个子程序 – 2969 个字节的程序空间 – V 存储器的 445 字节模块(用于指令符号) 必须从 STEP 7‑Micro/WINSMART 的库存储器命令中为该模块分配起始地址。将 MBUS_SERVER指令置于程序中后,可从项目树中的“程序块”(Program Block) 或“程 序块 > 库”(Program Block> Library) 文件夹访问库存储器命令。Modbus TCP 客户端 10.4.2.1 MBUS_CLIENT 指令 表格10-14 MBUS_CLIENT 指令 LAD/FBD STL 说明 Call MBUS_CLIENT Req, Connect,IPAddr1, IPAddr2, IPAddr3, IPAddr4, IP_Port, RW, Addr, Count,DataPtr, Done, Error MBUS_CLIENT 作为 Modbus TCP 客户端通过 S7-200 SMARTCPU 上的以太网端口进行通信。 MBUS_CLIENT 可建立客户端-服务器连接、发送 Modbus功能请求、接收客户端响应,以及连接至 Modbus TCP 服务器和断开与此服务器的连接。 程序执行周期每次扫描都必须调用MBUS_CLIENT,直到 Done 输出为 TRUE。在每个周期中, MBUS_CLIENT均会退出,以便程序可以继续运行。客户端完成请求时,MBUS_CLIENT 将 Done 设置为 TRUE。 表格 10-15参数的数据类型 参数和类型 数据类型 说明 Req IN BOOL Req 参数允许程序向服务器发送 Modbus 请求。FALSE:无 Modbus 通信请求 TRUE:请求与 Modbus TCP 服务器进行通信 Connect IN BOOLConnect 参数允许程序连接到 Modbus 服务器设备或断开与此设 备的连接。 如果 Connect = TRUE且不存在连接,则 MBUS_CLIENT 尝试与分 配的 IP 地址和端口号建立连接。 如果 Connect = FALSE且存在连接,则 MBUS_CLIENT 尝试断开连 接操作。当 Connect = FALSE 时,CPU 会忽略任何请求。这意味着,如果程序调用 MBUS_CLIENT(相应的 Req = TRUE, 但 Connect = FALSE),则 CPU会忽略该请求。 说明 IPAddr1IN BYTE 客户端尝试连接、且随后使用 Modbus 应用协议进行通信的服务 器的 IP 地址的第一个八位字节。 IPAddr2IN BYTE 客户端尝试连接、且随后使用 Modbus 应用协议进行通信的服务 器的 IP 地址的第二个八位字节。 IPAddr3IN BYTE 客户端尝试连接、且随后使用 Modbus 应用协议进行通信的服务 器的 IP 地址的第三个八位字节。 IPAddr4IN BYTE 客户端尝试连接、且随后使用 Modbus 应用协议进行通信的服务 器的 IP 地址的第四个八位字节。 IP_PortIN WORD 客户端尝试连接、且随后使用 Modbus TCP 进行通信的服务器的 端口号。 默认值:502将端口设置为设备的实际端口号。 RW IN BYTE 分配请求类型(读取或写入),其中 0 = 读取,1 = 写入。有关详细信息,请参见下面的 Modbus 功能表。 Addr IN DWORD Modbus 起始地址:分配要通过 MBUS_CLIENT进行访问的数据的 起始地址。有关详细信息,请参见下面的 Modbus 功能表。 Count IN INT Modbus数据长度:此请求中要访问的位或保持寄存器的数量 范围 10001 至 19999 和 30001 至 39999 是只读地址。对于输入和输出位,*大 Count 值为 1920 位。对于输入和保持寄存器, *大 Count 值为 120 字。有关详细信息,请参见下面的 Modbus 功能表。 DataPtr IN_OUT DWORD 指向 Modbus数据寄存器的指针:DataPtr 指向与读取或写入请求 关联的数据的 V 存储位置。对于读取请求,此位置是存储从 Modbus服务器读取的数据的第一个存储位置。对于写入请求, 此位置是要写入 Modbus 服务器的数据的第一个存储位置。 Done OUTBOOL TRUE:以下任一条件时为真: • 客户端已与服务器建立连接 • 客户端已与服务器断开连接 • 客户端已接收 Modbus响应 • 发生错误 FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响 应。 Error OUT BOOL指令执行结果 仅在发生错误后的一个周期内有效