西门子数控模块一级经销代理商
其产品范围包括西门子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低压配电与控制产品及软起动器等
使用 Modbus 指令的要求 Modbus RTU 主站协议 Modbus 主站指令使用以下 CPU 资源: • 执行MBUS_CTRL/MB_CTRL2 (页 546) 会初始化 Modbus 主站协议,并使分配的 CPU 端口 (0 或 1)专用于Modbus 主站通信。 当您将 CPU 端口用于 Modbus 通信时,无法再将其用于任何其它用途,包括与 HMI 的通 信。 •对于由 MBUS_CTRL/MB_CTRL2 指令分配的端口,其上所有与自由端口通信相关联的 SM 位置都会受到 Modbus主站指令的影响。 • Modbus 主站指令使用中断执行某些功能。用户程序不得禁用这些中断。 • Modbus 主站指令程序大小 –3 个子例程和 1 个中断例程 – 1942 个字节的程序空间用于存储两个主站指令和支持例程 – Modbus 主站指令的变量需要286 个字节的 V 存储器块。您必须使用 STEP 7-Micro/ WIN SMART中的库存储器命令为该块分配起始地址。该命令位于项目树中“程序块” (Program Block) 节点下的“库”(Library)节点的快捷存储器中,或在“文件”(File) 菜单 功能区的“库”(Libraries) 部分。 说明 要将 CPU 通信端口从Modbus 改回 PPI,以便可与 HMI 设备通信,应将 MBUS_CTRL/ MB_CTRL2 指令的模式参数设置为零(0)。Modbus 从站协议指令使用以下 CPU 资源: • MBUS_INIT 指令 (页 554)会初始化 Modbus从站协议,并使分配的 CPU 端口(0 或 1) 专用于 Modbus 从站通信。 当您将 CPU 端口用于 Modbus通信时,无法再将其用于任何其它用途,包括与 HMI 的通 信。 • Modbus 从站指令会影响所有与由 MBUS_INIT指令分配的端口上的自由端口通信相关联 的 SM 位置。 • Modbus 从站指令程序大小: – 3 个子例程和 2 个中断例程。 –2113 个字节的程序空间,用于两个从站指令和支持例程。 – Modbus 从站指令的变量需要 786 个字节的 V存储器块。您必须使用 STEP 7-Micro/ WIN SMART 中的库存储器命令为该块分配起始地址。该命令位于项目树中“程序块”(Program Block) 节点下的“库”(Library) 节点的快捷存储器中,或在“文件”(File) 菜单功能区的“库”(Libraries) 部分。 说明 要将 CPU 通信端口从 Modbus 改回 PPI,以便可与 HMI设备通信,应将 MBUS_INIT 指 令的模式参数设置为零 (0)。Modbus 协议的初始化和执行时间 • Modbus RTU主站协议:主站协议在每次扫描时都需要少量时间来执行 MBUS_CTRL 和 MB_CTRL2指令(如果有)。MBUS_CTRL/MB_CTRL2 初始化 Modbus 主站(首次扫描) 时该时间约为 0.2ms,在后续扫描时约为 0.1 ms。 MBUS_MSG/MB_MSG2 指令的执行延长了扫描进间,主要用于计算请求和响应的Modbus CRC。CRC(循环冗余校验)确保通信消息的完整性。对于请求和响应中的每个字,PLC 扫描时间会延长约 86微秒。*大请求/响应(读取或写入 120 个字)使扫描时间延长约 10.3毫秒。读请求主要是在程序从从站接收响应时延长扫描时间,在发送请求时扫描时间延长得较少。写请求主要是在将数据发送到从站时延长扫描时间,在接收响应时扫描 时间延长得较少。 • Modbus RTU从站协议:Modbus 通信使用 CRC(循环冗余验校)确保通信消息的完整 性。Modbus从站协议使用预先计算的数值表来减少处理消息所需的时间。初始化该 CRC 表大约需要 11.3 毫秒。MBUS_INIT指令执行该初始化,通常发生在进入运行模式后的首 次扫描期间。如果 MBUS_INIT 指令和任何其它用户初始化操作所需时间超过了500 毫秒 的扫描看门狗时间,则需要复位看门狗定时器。输出模块看门狗定时器通过向模块的输 出中执行写入操作来复位。MBUS_SLAVE 在对一个请求提供服务时会延长扫描时间。对于请求和响应中的每个字节, 计算其 Modbus CRC会使扫描时间延长约 40 微秒。*大请求/响应(读取或写入 120 个 字)使扫描时间延长约 4.8 毫秒。 10.3.2Modbus RTU 主站 10.3.2.1 使用 Modbus RTU 主站指令 STEP 7‑Micro/WIN SMART 和S7‑200 SMART CPU 支持两种 Modbus RTU 主站。对于单个 Modbus RTU 主站,使用指令MBUS_CTRL (页 546) 和 MBUS_MSG (页 548)。对于第二个 Modbus RTU 主站,使用指令MBUS_CTRL2 (页 546) 和 MBUS_MSG2 (页 548)。 如果您在项目中使用两个 Modbus 主站,则要确保MBUS_CTRL 和 MB_CTRL2 使用不同的端 口号。 要在 S7-200SMART 程序中使用 Modbus RTU 主站指令,请执行以下步骤: 1. 在程序中插入 MBUS_CTRL/MB_CTRL2指令并在每次扫描时执行。您可以使用 MBUS_CTRL/ MB_CTRL2 指令启动或更改 Modbus 通信参数。当您插入MBUS_CTRL/MB_CTRL2 指令时, STEP 7‑Micro/WIN SMART会在程序中添加几个受保护的子例程和中断例程。 2. 在“文件”(File) 菜单功能区的“库”(Libraries)区域中,单击“存储器”(Memory) 按 钮 ,指定 Modbus 库所需的 V 存储器的起始地址。或者,也可在项目树中右键单击“程序块”(Program Block) 节点,并从上下文菜单中选择“库存储器”(Library Memory)。 3.在程序中放置一条或多条 MBUS_MSG/ MB_MSG2 指令。可以根据需要在程序中添加任意数量 的MBUS_MSG/MB_MSG2 指令,但某一时间只能有一条指令处于激活状态。 4. 用通信电缆连接通过MBUS_CTRL/MB_CTRL2 端口参数分配的 S7-200 SMART CPU 端口和 Modbus 从站设备。 注意防止意外电流 互连参考电位不同的设备可能导致意外电流从互连电缆中流过。这些意外电流可能导致 通信错误或设备损坏。确保所有用通信电缆连接的设备均具有共同的电路参考点或已隔离,从而避免产生意外 电流。MBUS_CTRL/MB_CTRL2指令(初始化主站) MBUS_CTRL 和 MB_CTRL2 具有相同的作用和参数。MBUS_CTRL 用于单个 Modbus RTU主 站。MB_CTRL2 用于第二个 Modbus RTU 主站。相应地,MBUS_MSG 和 MBUS_CTRL 一同用 于单个Modbus RTU 主站。MB_MSG2 和 MB_CTRL2 一同用于第二个 Modbus RTU 主站。 表格 10-3MBUS_CTRL 和 MB_CTRL2 指令 LAD/FBD STL 说明 CALL MBUS_CTRL, Mode, Baud,Parity, Port, Timeout, Done, Error CALL MB_CTRL2, Mode, Baud,Parity, Port, Timeout, Done, Error 程序调用 MBUS_CTRL/MB_CTRL2 指令来初始化、监视或禁用 Modbus 通信。 在执行 MBUS_MSG/MB_MSG2 指令前,程序必须先 执行MBUS_CTRL/MB_CTRL2 且不出现错误。该指令 完成后,将“完成”(Done) 位置为 ON,再继续 执行下一条指令。EN 输入接通时,在每次扫描时均执行该指令。 “模式”(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/MB_CTRL2 指令完成时,指令将“真”(TRUE)返回给“完成”(Done) 输出。 “错误”(Error) 输出包含指令执行的结果。 另请参见 Modbus RTU 主站执行错误代码(页 551)N 输入和 First 输入接通时,MBUS_MSG/MB_MSG2 指令会向 Modbus 从站发起主站请求。发送请求、等待响应和处理响应通常需要多个 PLC 扫描时间。EN 输入必须接通才能启 用发送请求,并且必须保持接通状态,直到指令为Done 位返回接通。 某一时间只能有一条 MBUS_MSG 或 MB_MSG2 指令处于激活状态。如果程序启用多条 MBUS_MSG指令或多条 MB_MSG2 指令,则 CPU 将处理第一条 MBUS_MSG 指令或 MB_MSG2 指令,所有后续 MBUS_MSG或 MB_MSG2 指令将中止并生成错误代码 6。 表格 10-6 MBUS_MSG/MB_MSG2 指令的参数 参数 数据类型操作数 First BOOL I、Q、M、S、SM、T、C、V、L(受上升沿检测元素控制的能流YTEVB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD 有新请求要发送时,将参数 First设置为接通,并仅保持一个扫描周期。First 输入以脉冲方式通过边沿检测元素(例如,上升沿),这将导致程序发送请求一次。有关详细信息,请参见 示例程序 (页 558)。参数“从站”(Slave) 是 Modbus 从站设备的地址。允许范围为 0 至 247。地址 0 是广播地址。 仅将地址 0用于写入请求。系统不会响应对地址 0 的广播请求。并非所有从站设备都支持 广播地址。S7-200 SMART Modbus从站库不支持广播地址。 使用参数 RW 指示是读取还是写入该消息。0(读取)和 1(写入)。离散量输出(线圈)和保持寄存器支持读请求和写请求。离散量输入(触点)和输入寄存器 仅支持读请求。 参数地址 (Addr) 是起始Modbus 地址。S7‑200 SMART 支持以下地址范围: • 对于离散量输出(线圈),为 00001 至 09999 •对于离散量输入(触点),为 10001 至 19999 • 对于输入寄存器,为 30001 至 39999 • 对于保持寄存器,为40001 至 49999 和 400001 至 465535 Modbus 从站设备支持的地址决定了 Addr 的实际取值范围。参数“计数”(Count) 用于分配要在该请求中读取或写入的数据元素数。对于位数据类型,“Count”是位数,对于字数据类型,则表示字数。 • 对于地址 0xxxx,“计数”(Count) 是要读取或写入的位数 •对于地址 1xxxx,“计数”(Count) 是要读取的位数 • 对于地址 3xxxx,“计数”(Count)是要读取的输入寄存器字数 • 对于地址 4xxxx 或 4yyyyy,“计数”(Count) 是要读取或写入的保持寄存器字数MBUS_MSG/MB_MSG2 指令*多读取或写入 120 个字或 1920 个位(240 个字节的数据)。 Count的实际限值取决于 Modbus 从站设备的限制。 参数DataPtr是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V存储器。对于读请求, 将 DataPtr 设置为用于存储从 Modbus 从站读取的数据的第一个 CPU 存储单元。对于写请求, 将DataPtr 设置为要发送到 Modbus 从站的数据的第一个 CPU 存储单元