Search the Community
Showing results for tags '西门子'.
Found 54 results
-
西门子 SIMATIC S7-200 SMART 之间 PROFINET IO 通信 - 硬件目录
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 之间 PROFINET IO 通信——硬件目录 从 S7-200 SMART V2.5 版本开始,S7-200 SMART 开始支持做 PROFINET IO 通信的智能设备。从而,两个 S7-200 SMART 之间可以进行 PROFINET IO 通信,一个 CPU 作 PROFINET IO 控制器,一个CPU 作 PROFINET IO 通信的设备。组态的时候有两种方法,一 种是通过硬件目录组态,另外一种是通过 GSD 文件组态。 本文描述两个 S7-200 SMART 之间进行 PROFINET IO 通信,通过硬件目录组态。所用的软件、硬件及通信任务如下所示: 软件: STEP7 Micro/WIN SMART V2.5 硬件: IO 控制器: CPU: ST20 IP 地址:192.168.0.20 CPU 固件:V2.5 IO 设备: CPU: ST40 IP 地址:192.168.0.40 CPU 固件:V2.5; 设备名称:st40 通信任务: 控制器将 10 个字节的数据发送给智能设备,同时从智能设备中读取 10 个字节的数据 智能设备组态 1、新建空白项目,打开系统块,选择 CPU ST40,CPU 的固件选择 V2.5,设置选择 CPU 启动后的模式为运行。如图 1 所示。 图 1. 系统块添加 CPU 2、打开 PROFINET 向导,有两种方法,任选其中一种打开向导。如图 2 所示。 图 2. 打开 PROFINET 向导 3、勾选 PLC 角色为智能设备;以太网端口选择固定 IP 地址及站名:IP 地址是192.168.0.40,子网掩码是 255.255.255.0,设备名称是 st40。如图 3 所示。 图 3. 设置 PLC 角色 IP 地址及设备名称 4、添加传输区,第一个条目是从 IB1152 开始的 10 个字节区域,第二个条目是从 QB1152 开始的 10 个字节区域,如图 4 所示。 图 4. 添加传输区并生成向导 控制器侧组态 1、新建空白项目,打开系统块,选择 CPU ST20,CPU 的固件选择 V2.5,设置选择 CPU 启动后的模式为运行,如图 5 所示。 图 5. 系统块添加 CPU 2、打开 PROFINET 向导,有两种方法,任远其中一种打开向导,如图 2 所示。 3、在向导中选择 PLC 角色为控制器,并且设置控制器的 IP 地址,如图 6 所示。 图 6. 设置 PLC 角色和 IP 地址 4、从硬件目录中选择作为智能设备的 ST40 CPU,可直接拖拽至设备列表中,手动修改设备名称为 st40 与智能设备侧组态的设备名称保持一致,IP 地址选择固定。如图 7 所示。 图 7. 硬件目录中添加智能设备 5、从控制器侧组态添加传输区,与智能设备侧组态条目交叉对应(智能设备侧组态 Q 区,控制器侧组态I区),设置合适的更新时间及数据保持,如图 8 所示。 图 8. 添加传输区 6、无特殊需求,可以一直点击下一步,然后点击生成。 通信测试 分别下载控制器和智能设备的程序,在状态图表中添加相应的地址区域观察数据交换情况,如图 9 所示。 图 9. 测试结果 例程 为了更好地理解 PROFINET 通信配置,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART 编写。 2. 下载前核实实际使用的 CPU 是否与例程中一致,不一致的话需要修改系统块中组态的 CPU,并前往 PROFINET 向导重新点击生成,然后再下载。 控制器 智能设备 注意: 此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门 子 SIMATIC S7-200 SMART 之间 PROFINET IO 通信 - GSD 文件
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 之间 PROFINET IO 通信——GSD 文件 从 S7-200 SMART V2.5 版本开始,S7-200 SMART 开始支持做 PROFINET IO 通信的智能设备。从而,两个 S7-200 SMART 之间可以进行 PROFINET IO 通信,一个CPU 作PROFINET IO 控制器,一个 CPU 作 PROFINET 通信的设备。组态的时候有两种方法,一种是通过硬件目录组态另外一种是通过 GSD 文件组态。 S7-200 SMART PROFINET 通信相关视频链接如下: 2 个 S7-200 SMART 之间 PROFINET 通信举例---学习视频 2 个 S7-200 SMART 之间 PROFINET 通信举例---练习视频 本文描述两个 S7-200 SMART 之间进行 PROFINET IO 通信,通过 GSD 文件组态。所用的软件、硬件及通信任务如下所示: 软件: STEP7 Micro/WIN SMART V2.5 硬件: IO 控制器: CPU: ST20 IP 地址:192.168.0.20 CPU 固件:V2.5 IO 设备: CPU: ST40 IP 地址:192.168.0.40 CPU 固件:V2.5; 设备名称:st40 通信任务: 控制器将 10个字节的数据发送给智能设备,同时从智能设备中读取 10 个字节的数据 智能设备组态——导出 GSD 文件 1、新建空白项目,打开系统块,选择 CPU ST40,CPU 的固件选择 V2.5,设置选择 CPU 启动后的模式为运行。如图 1 所示。 图 1. 系统块添加 CPU 2、打开 PROFINET 向导,有两种方法,任选其中一种打开向导。如图 2 所示。 图 2. 打开 PROFINET 向导 3、勾选 PLC 角色为智能设备;以太网端口选择固定 IP 地址及站名:IP 地址是 192.168.0.40,子网掩码是 255.255.255.0,设备名称是 st40。如图 3 所示。 图 3. 设置 PLC 角色 IP 地址及设备名称 4、添加传输区,第一个条目是从 IB1152 开始的 10 个字节输入区域,第二个条目是从 QB1152 开始的 10 个字节输出区域,浏览合适的路径用来存储 GSD 文件,然后直接导出 GSD 文件。如图 4 所示。 图 4. 添加传输区并导出 GSD 文件 5、导出的 GSD 文件如图 5 所示。 图 5. 导出的 GSD 文件 控制器侧组态——导入 GSD 文件 1、新建空白项目,打开系统块,选择 CPU ST20,CPU 的固件选择 V2.5,设置选择 CPU 启动后的模式为运行,如图 6 所示。 图 6. 系统块添加 CPU 2、导入从智能设备导出的 GSD 文件,如图 7 所示。 图 7. 导入 GSD 文件 3、打开 PROFINET 向导,有两种方法,任选其中一种打开向导,如图 2 所示。 4、在向导中选择 PLC 角色为控制器,并且设置控制器的 IP 地址,如图 8 所示。 图 8. 设置 PLC 角色和 IP 地址 5、从硬件目录中 PROFINET-IO,PLCs,SIEMENS,CPU ST40 下,选择刚刚添加好的 GSD 文件,拖放至设备表中。此处设备名称和 IP 地址均直接由 GSD 文件指定好,无需再手动修改,如图 9 所示。 图 9. 通过 GSD 添加智能设备 6、核对 GSD 文件中已经添加好的传输区,无法修改传输区的数据长度及输入/输出方向,仅可修改传输区条目的起始地址;设置合适的更新时间及数据保持,如图 10 所示。 图 10. 核对添加的传输区 7、无特殊需求,可以一直点击下一步,然后点击生成。 通信测试 分别下载控制器和智能设备的程序,在状态图表中添加相应的地址区域观察数据交换情况,如图 11 所示。 图 11. 测试结果 例程 为了更好地理解 PROFINET 通信配置,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART 编写。 2. 下载前核实实际使用的 CPU 是否与例程中一致,不一致的话需要修改系统块中组态的 CPU,并前往 PROFINET 向导重新点击生成,然后再下载。 控制器 智能设备 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 S7-200 SMART 通过 PROFINET 连接 G120 实现基本定位控制
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 通过 PROFINET 连接 G120 实现基本定位控制 从 S7-200 SMART V2.4 版本开始,标准型 CPU 支持做 PROFINET IO 通信的控制器,可以带 PROFINET IO 设备。PLC 通过编程软件中提供的 SINAMICS 库功能块 SINA_POS 可以实现基本定位控制。 文档下载 文档号:109769118:Smart 200 和 G120 的 PN 通信 S7-200 SMART 通过 PROFINET 连接 G120 实现速度控制 PLC 通过编程软件中提供的 SINAMICS 库功能块 SINA_SPEED 可以实现速度控制。 文档下载 文档号:109769119:Smart 200 和 G120 的 PN 通信 S7-200 SMART 读写 G120 的驱动参数 PLC 通过编程软件中提供的 SINAMICS 库功能块 SINA_PARA_S 可以读取或修改 G120 中的参数。 文档下载 文档号:109769120:Smart 200 和 G120X 的 PN 通信 -
西门子 S7-200 SMART EM DP01 Profibus-DP 从站通信模块简介
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
DP01 模块简介 使用 EM DP01 扩展模块可以将 S7-200 SMART CPU 做为 PROFIBUS-DP 从站连接到 PROFIBUS 通信网络,EM DP01 可作为 DP V0/V1 主站的通信伙伴。通过模块上的旋转开关可以设置 PROFIBUS-DP 从站地址。该模块支持 9600 波特到 12M 波特之间的任一 PROFIBUS 波特率, 最大允许 244 输入字节和 244 输出字节。 每个 S7-200 SMART CPU(仅限 ST 与 SR 型号)可扩展两个 PROFIBUS EM DP01。 支持协议 DP01 模块同时支持 PROFIBUS-DP 和 MPI 两种协议。EM DP01 PROFIBUS DP 模块的 DP 端口可以连接到网络中的 DP 主站,并且依然能够作为 MPI 设备与其它主站设备(例如,同一网络中的 SIMATIC HMI 设备或 S7-300/S7-400 CPU)通信。因 DP01 只能作为从站,所以两个 DP01 之间不能通信。作为 MPI 从站时, 连接资源共 6个,1 个预留给 OP,其余 5 个为自由资源,可以与 MPI 主站以及HMI设备通讯。 DP01 模块使用前提条件 编程软件版本:STEP 7-MicroWIN SMART V2.1 及以上版本。 CPU 固件:V2.1 及以上版本 数据一致性 定义 同步运行中无法修改的数据区称为一致性数据区,即在超出一致性数据区所允许最大空间的连续数据区中,可同时包含新数据和旧数据。 示例 如果中断通信块的执行过程(例如,由优先级更高的硬件中断程序中断),可能会出现不一致性现象。如果该中断程序中的用户程序对已由该通信块局部处理的数据进行更改,则传送数据开始于: 部分开始于处理硬件中断之前,部分开始于处理硬件中断之后,这意味着,这些数据是不一致的(不连续)。 PROFIBUS 支持三种类型的数据一致性: 字节:确保字节作为整体传送。 字:确保字的传送过程不会被 CPU 中的其它进程所中断。 缓冲区:确保整个数据缓冲区作为一个单位传送,不会被 CPU 中的其它进程所中断。 EM DP01 在数据处理过程中始终利用缓冲区一致性。 EM DP01 和 S7-200 SMART CPU 可确保整个传送的缓冲区一致性 EM DP01 以一条消息的形式接收 DP 主站的输出。 EM DP01 将所有输出以一条消息形式传送到 S7-200 SMART CPU,并且传送过程不可中断。 S7-200 SMART CPU 一次性将所有输出传送到 V 存储器。传送不可受用户干扰而中断。 输入到 DP 主站时也会确保这种一致性 S7-200 SMART CPU 一次性将所有输入从 V 存储器传出。传送不可受用户干扰而中断。 S7-200 SMART CPU 将所有输入以一条消息形式传送到 EM DP01。该传送不可被中断。 EM DP01 将输入以一条消息形式发送到 DP 主站。 DP 主站的一致性 DP 主站 CPU 的一致性并非总是缓冲区一致。除非 DP 消息非常小,否则 DP 主站 CPU 不会将整个 DP 消息作为一个不可分割的对象进行处理。DP 主站 CPU 通常会以较小的单位移动 PROFIBUS 数据。既可以通过它们将数据移动到 I/O 区,也可以由用户使用 DPRD_DAT(读取 DP 设备的一致性数据)与 DPWR_DAT(写入 DP 设备的一致性数据)指令来控制移动。使用 DPRD_DAT 和 DPWR_DAT 指令,一次可获取一个组态 "插槽" 的信息。因为允许有两个组态插槽,这样就可以使用两条 DPRD_DAT 指令来获取所有数据。仅对每条 DPRD_DAT 指令保证一致性。 支持的组态 在 EM DP01 组态中,可以支持 2 个插槽,混用并匹配以上组态中的任意两种。EM DP01 最大允许 244 输入字节和 244 输出字节,如果对 EM DP01 使用两种组态,则所有的输入数据和所有的输出数据都是连续的。以下是两个示例: 一个 32 字节输入输出的组态加上一个 8 字节输入输出的组态得到总计 40 输入字节以及 40 输出字节。 一个 122 字节输入输出的组态加上一个 122 字节输入输出的组态得到总计 244 输入字节以及 244 输出字节。 主站中与从站的通信数据区对应关系 假设 DP 主站已定义一个 I/O 组态,其包含两个插槽且 V 存储器偏移量为 1000。将第一个插槽组态为 32 字节的输入输出,第二个插槽组态为 8 字节的输入输出。S7-200 SMART CPU 的输出与输入缓冲区均为 40 字节 (32 + 8)。输出数据(来自 DP 主站)缓冲区起始于 VB1000;输入数据(送入 DP 主站)缓冲区紧随输出缓冲区并起始于 VB1040。 GSD 文件 不同的 PROFIBUS 设备具有不同的性能特征。这些特点会因功能(例如 I/O 信号和诊断消息的数量)或总线参数(例如传送速度与时间监视)而不同。这些参数因设备类型和供应商不同而不同,通常记录在技术手册中。为帮助用户简化 PROFIBUS 的组态,可在一个称为设备数据库文件或 GSD 文件的电子数据表中指定具体设备的性能特征。基于 GSD 文件的组态工具可以将不同供应商的设备方便地集成在同一个网络中。GSD 设备数据库文件以精确定义的格式全面地描述设备的各项特征。供应商负责为每种设备都准备 GSD 文件并提供给 PROFIBUS 用户使用。组态系统使用 GSD 文件可读取 PROFIBUS 设备的特征并在组态网络时使用这些信息。 DP01 作为一个特殊的 PROFIBUS-DP 从站模块,其相关参数(包括上述的数据一致性)是以 GSD(或 GSE)文件的形式保存的。在主站中配置 DP01,需要安装相关的 GSD 文件。 EM DP 01 GSD文件 Step7 平台下安装 GSD 文件 首先,在 STEP 7 项目里插入一个 S7-300 的站: STEP7 的硬件组态窗口中的 "Options" 菜单中点击“Install GSD File..”,导入 EM DP 01 GSD 文件,安装 DP01 配置文件,如下图: 选择 DP01 GSD 文件所在路径: 导入 GSD 文件后,在右侧的设备选择列表中找到从站 EM DP01,(添加的 GSD 文件一般位于 PROFIBUS DP->Additional Field Device->PLC->SIMATIC->EM DP 01 PROFIBUS-DP) 并且根据通讯字节数,选择相应的配置: TIA 平台下安装 GSD 文件 1. 启动 TIA Portal 软件。 2. 新建项目。 3. 在项目视图中,找到菜单栏并选择:"选项 > 管理通用站描述文件 (GSD)"(Options > Manage general station description files (GSD)) 4. 在 "源" (Source) 路径中,找到之前加载到计算机中的 EM DP01 GSD 文件。 5. 选中相应 GSD 文件行的复选框。 6. 单击 "安装" (Install) 按钮。 7. 执行上述操作后,将在硬件目录中安装 EM DP01 GSD 文件,如下图所示: DP01 LED 指示灯 EM DP01 PROFIBUS DP 模块的前面板上有四个状态 LED 用于指示 DP 端口的工作状态: DIAG LED: – 双色(绿色/红色)LED 指示 EM DP01 的工作状态和故障状态 – 红色闪烁:自启动时开始闪烁,直到 CPU 完成 EM DP01 登录后停止闪烁,或在 EM DP01 出现故障时闪烁 – 绿色闪烁:EM DP01 等待 S7-200 SMART CPU 传输组态和参数(登录后绿灯立即闪烁)期间或固件升级期间 – 绿色常亮:无任何故障且 EM DP01 已组态 POWER LED: – 绿色常亮:有用户 24 V DC – 灭:无用户 24 V DC DP ERROR LED: – 红色闪烁:DP 主站写入 EM DP01 的 I/O 组态或参数信息存在错误 – 红色常亮:DP 通信被中断 – 灭:无错误或从未建立数据交换 DX MODE LED: – 灭:S7-200 SMART CPU 通电后,未尝试进行 DP 通信或 DP 通信被中断 – 绿色常亮:成功发起 DP 通信后(EM DP01 已进入与 DP 主站交换数据的模式),该指示灯保持常亮,直至 EM DP01 退出数据交换模式 下表总结了 EM DP01 状态 LED 指示的状态: LED 灭 红色 红色闪烁 绿色闪烁 绿色 DIAG - 模块内部故障 自启动时开始闪烁,直到 CPU 完成 EM DP01 登录后停止闪烁,或在 EM DP01 出现故障时闪烁 EM DP01 等待 S7- 200 SMART CPU 传输组态和参数期间或 固件升级期间 无任何故障; EM DP01 已组态 POWER 无 24 V DC 用户电源 - - - 24 V DC 用户电源正常 DP ERROR 无错误 DP 通信中断;数据交换模式停止 参数设置/组态错误(来自 DP 主站) - - DX MODE 数据交换模式未激活或数据通信中断 - - - 数据交换模式激活 常问问题 是否可以通过 DP01 模块控制变频器? 不可以。DP01 是 PROFIBUS-DP 从站模块,不能做主站;而变频器需要接受主站的控制。 为什么重新设置 DP01 地址后不起作用? 对 DP01 重新设置地址后,需断电后重新上电才起作用。或者检查 DP01 址拨码是否到位。 主站中对 DP01 的 I/O 配置的数据通信区已经到了最大,而仍不能满足需通信的数据量怎么办? 可以在传送的数据区中设置标志位,分时分批传送。 DP01 所支持的通信速率和距离是多少? 电缆长度 所支持的通信速率 1200m 93.75k 1000m 187.5k 400m 500k 200m 1M 到 1.5M 100m 3M 到 12M DP01 的联网能力如何? 联网能力 数据 站地址设置 0-99 (由旋钮开关设定) 每段最大站数 32 每个网络最大站数 126,最多 99 个 DP01 站 MPI 连接 一共 6 个,1 个保留给 OP 一个网络上只能有最多 99 个 DP01 站,是因为其地址设置开关的限制。 S7-300 或 S7-400 的 PROFIBUS_DP 主站最多可以有多少个 DP01 从站? 这与 S7-300 或 S7-400 的 DP 口或 DP 模板的能力有关,要根据它所支持的 DP 从站数而定。一个网上最多可以有 99 个 DP01。 -
西门子 S7-200 SMART EM DP01 Profibus-DP 从站通信模块与 SIMATIC NET 进行 S7 通信
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
EM DP01 与 SIMATIC NET 进行 S7 通信 硬件: ① S7-200 SMART 以及 EM DP01 模块(CPU 固件版本 V 2.1 以上才可以使用 EM DP01) ② PC 机 (PCI-E 插槽) ③ CP 5624 卡 软件: ① STEP 7-Micro/WIN SMART V2.1 ② STEP 7 Professional(TIA Portal V13 SP1 Upd 9) ③ SIMATIC NET V13 SP2 ④ 操作系统 Windows 7 Professional 64 位 SP1 在 TIA Portal 平台中配置 PC station 1. 使用 TIA V13 SP1 Upd 9 软件 Portal 视图中,创建新项目 2. 添加 PC 系统并命名设备名称 进入“项目视图”,在“项目树”下双击“添加新设备”,在对话框中选择 PC 系统>常规 PC,命名为 PC station 如图1 所示 图 1. 添加新设备 3. 添加 OPC 服务器及 CP 5624 卡 进入设备视图>硬件目录>用户应用程序> OPC 服务器,双击,添加 OPC 服务器; 进入设备视图>硬件目录>通信模块> PROFIBUS> CP5624,找到相应的 CP 卡双击,添加 CP 5624 卡 ,结果如图 2 所示 图 2. 添加 OPC 服务器及 CP5624 4. 为 CP 5624 卡通信口分配 DP 地址 在“设备视图”中点击 CP5624 上代表 PRIBUS 通信口的紫色方块,在下方会出现 PROFIBUS 接口的属性,在“PROFIBUS 地址”下,点击“添加新子网”,建立 PRFIBUS_1 网络;分配 CP5624 的接口类型为 PROFIBUS ;地址设置为 3 ,如图 3 所示 图 3. 添加子网并分配 DP 地址 5. 在网络视图中,点击代表 PROFIUBS_1 网络的紫色实线,属性>常规>网络设置,可以设置传输率,此处设定传输率为 1.5 Mbps,如图 4 所示。 图 4. 设置传输率 6. 建立 S7 连接并且设置连接参数 打开网络视图,点击连接,选择S7 连接,默认连接为HMI连接,需要修改;点击 OPC server,右键添加新连接;创建新连接对话框选择未指定,本地接口选择 CP5624,点击添加; 属性>常规>常规,伙伴站点及接口设置为未知;伙伴地址设置为 4(为 EM DP01 的地址); 属性>常规>地址详细信息,伙伴 TSAP 设置为 03.00 。 设置步骤如图 5 所示。 图 5. 建立 S7 连接及参数配置 7. 生成 XDB 组态文件 网络视图中,点击 PC station 站点,属性> XDB 组态,勾选“生成 XDB 文件” 然后将项目进行编译。如图 6 所示。 图 6. 生成 XDB 文件 STATION CONFIGURATOR 中导入 XDB 组态文件 在计算机“开始”菜单中 ,搜索,输入关键字 STATION CONFIGURATOR,双击找到的软件,打开; 在打开的 Station Configuration Editor 中点击“Import Station”,选择 XDB 存储路径导入 导入过程及结果如图 7 所示。 图 7. 导入 XDB 文件 S7-200 SMART 侧设置 DP01 的地址 使用 EM DP01 要保证 CPU 的硬件固件在 V2.1 及其以上;编程软件的版本在 V2.1 以上 1、打开STEP 7-MicroWIN SMART > 项目树 > 系统快,组态 EM DP01 模块,如图 8 所示,然后编译,下载。 图 8. 系统块组态 EM DP01 2、设置 EM DP01 模块地址为 4,设置完需要断电重启,如图 9 所示。 图 9. 设置 EM DP01 地址 3、使用 DP 总线和 DP 总线连接器连接 EM DP01 的 RS485口 和电脑上安装的 CP5624 的 RS 485 口, EM DP01 模块波特率自适应,不用单独设定。 使用 OPC SCOUT 测试 在计算机“开始”菜单中,搜索 SIMATIC NET 的 OPC Scout V10 ,双击打开,建立变量:MB10,MB11 ,MD20, MD24 ,MD28。 打开 STEP 7-MicroWIN SMART,在状态图表中赋值。 如图 10 所示 图 10. 通信结果 常见问题 如何理解建立的变量的起始地址,数据类型及个数 以建立 M 区变量为例说明,如下图所示 S7-200 SMART 要交换 V 区数据,OPC scout 中无法添加 DB 块的变量怎么办? S7-200 SMART 要通信 V 区数据,需要在 OPC SCOUT 中建立 DB1 的数据 如果在 OPC Scout 中无法建立 DB 块数据,可以先插入 M 变量,然后进行修改,修改方法如下: 注意!OPC scout 如果无法建立 DB 块变量,在 M 区修改以后也只能用于测试 S7 通信是否成功,在客户端需要单独建立变量。 -
工业自动化网络通讯 ISO-on-TCP 协议
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
ISO-on-TCP 协议 ISO-on-TCP 是一种使用 RFC 1006 的协议扩展。ISO-on-TCP 的主要优点是数据有一个明确的结束标志,可以知道何时接收到了整条消息。S7 协议 (Put/Get) 使用了 ISO-on-TCP 协议。ISO-on-TCP 仅使用 102 端口,并利用 TSAP(传输服务访问点)将消息路由至适当接收方(而非 TCP 中的某个端口)。 S7-200 SMART 与之间的 ISO-on-TCP 通讯可以通过两边调用 OUC (开放式用户通讯) 指令库中的 ISO_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT 指令来实现。 图 1. 开放式用户通讯库 开放式用户通信库需要使用 50 个字节的 V 存储器。 开放式的用户通讯连接资源包括 8 个主动连接和 8 个被动连接。 只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。 所需条件: 1、软件版本:STEP 7-Micro/WIN SMART V2.2 2、SMART CPU 固件版本: V2.2 3、通讯硬件:TP 电缆(以太网电缆) 4、PC (带以太网卡) 所完成的通讯任务: 将作为服务器端(192.168.0.102)的 V3000-VB3003 的数据传送到客户端(192.168.0.101)的 VB3000-VB3003 内。 S7-200 SMART 客户端编程 1、设置客户端的 IP 地址 设置 IP 地址为 192.168.0.101 图 2. 设置IP地址 2、建立 ISO-on-TCP 连接 调用 ISO_CONNECT 指令建立 ISO 连接。设置连接伙伴地址为 192.168.0.102,连接标识 ID 为 1,本地和远端的 TSAP 要交叉对应。TSAP 不能少于三个字符。 利用 SM0.0 使能 Active,设置为主动连接。 图 3. 建立 ISO-on-TCP 连接 指令的参数 输入参数: EN :使能输入 Req:沿触发 Active : TURE=主动连接(客户端)FALSE = 被动连接(服务器) ConnID:连接 ID 为连接标识符,可能范围为 0-65534 IPaddr1 ... IPaddr4 :IP 地址的四个八位字节。IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。 RemTsap:RemPort 是远程 TSAP 字符串。 LocTsap :LocPort 是本地 TSAP 字符串。 输出参数: Done:当连接操作完成且没有错误时,指令置位 Done 输出。 Busy:当连接操作正在进行时,指令置位 Busy 输出。 Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对应详见手册 。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。 3、接收数据 将数据接收缓冲区设为 4 个字节,接收数据缓冲区以 VB3000 起始。 图 4. 调用 TCP_RECV 指令 指令的参数 输入参数: EN :使能输入 ConnID:连接 ID (ConnID) 是此发送操作的连接 ID 号。 MaxLen :接收的最大字节数(1 到 1024)。 DataPtr :指向接收数据存储位置的指针。 输出参数: Length :实际接收的字节数。仅当指令置位 Done 或 Error 输出时,Length 才有效。如果指令置位 Done 输出,则指令接收整条消息。如果指令置位 Error 输出,则消息超出缓冲区大小 (MaxLen) 并被截短。 4、终止通讯连接 用户可通过 DISCONNECT 指令终止指定 ID 的连接。 图 5. 调用 DISCONNECT 指令 参数说明: 输入参数: EN : 使能 Req:沿触发。 输出参数: Done:当连接操作完成且没有错误时,指令置位 Done 输出。 Busy:当连接操作正在进行时,指令置位 Busy 输出。 Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。 5、分配库存储区 开放式用户通信库需要使用 50 个字节的 V 存储器,用户需手动分配 。在指令树的程序中,以鼠标右键单击程序块,在弹出的快捷菜单中选择库存储器。如图所示: 图 6. 库存储器 在弹出的选项卡中设置库指令数据区: 图 7. 分配地址 S7-200 SMART 服务器端编程 1、设置服务器的 IP 地址 设置 IP 地址为 192.168.0.102 图 8. 设置 IP 地址 2、建立 ISO-on-TCP 连接 调用 ISO_CONNECT 指令建立 ISO 连接。设置连接伙伴地址为 192.168.0.101,连接标识 ID 为 1,本地和远端的 TSAP 要交叉对应。TSAP 不能少于三个字符。 利用 SM0.0 常闭点使能 Active,设置为被动连接。 图 9. 建立连接 3、发送数据 调用 TCP_SEND 指令将以 VB3000 为起始,数据长度为 4 字节的数据发送到连接 ID 为 1 指定的远程设备。 利用 1HZ 的时钟上升沿触发发送请求。 图 10. 调用 TCP_SEND 指令 指令的参数 输入参数: EN :使能输入 Req:沿触发 ConnID:连接 ID (ConnID) 是此发送操作的连接 ID 号。 DataLen :DataLen 是要发送的字节数(1 到 1024)。 DataPtr:DataPtr 是指向待发送数据的指针。 输出参数: Done:当连接操作完成且没有错误时,指令置位 Done 输出。 Busy:当连接操作正在进行时,指令置位 Busy 输出。 Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体的错误代码详见手册 。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。 监控结果 图 11. 监控结果 ISO-on-TCP 通信例程 为了更好地理解 ISO-on-TCP 的编程,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART 编写。 2. 在建立连接时需先触发服务器端的建立连接指令,再触发客户端。 ISO-on-TCP_Clent 客户端程序 ISO-on-TCP_Server 服务器端程序 注意: 此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为 此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200 SMART 做控制器与 S7-1200 的 PROFINET IO 通信
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200SMART 做控制器与 S7-1200 的 PROFINET IO 通信 STEP 7-Micro/WIN SMART V2.4 和 S7-200 SMART PLC 固件版本 V2.4 开始增加了 PROFINET 通信的功能,可以作 PROFINET IO 控制,S7-1200 V4.0 支持智能 IO 设备功能,本例中将 S7-200 SMART 做为控制器,连接作为智能 IO 设备的 S7-1200 CPU 实现 Profinet 通信。 硬件: IO 控制器: CPU:ST20 IP 地址:192.168.0.223 CPU 固件:V2.5 IO 设备: CPU:1215C DC/DC/DC IP 地址:192.168.0.203 CPU 固件:V4.2 设备名称:io-device 软件: STEP 7-Micro/WIN SMART V2.5 Step7 V15 智能设备组态——导出 GSD 文件 1、使用 Step7 V15 创建 S7-1200 项目 使用 STEP7 V15 创建一个新项目,并通过“添加新设备”组态 S7-1200 站 IO 设备,选择 1215C;设置 IP 地址,并确认设备名称,本示例中设备名称是 io_device,如图 1 所示。 图 1. 设置 IP 地址 S7-1200 作为 IO 设备,需要将其操作模式设置为 IO 设备,如图 2 所示。 图 2. 将 S7-1200 设置为 IO 设备,并分配传输区域 接着,在“智能设备通信”的“传输区”创建 IO 通信区,控制器将传输 5 个字节到 IO 设备的 IB2~6 ;IO 设备将 QB2~6 共计 5 个字节传送给控制器。 2、 导出 IO 设备的 GSD 文件 编译该项目,在“智能设备通信”属性的下方,找到并点击“导出”按钮,根据提示将 GSD 文件导出(注意不要修改设备名称),如图 3 所示。 图 3. 导出 IO 设备的 GSD 文件 控制器侧组态——导入 GSD 文件 1、使用 STEP 7-Micro/WIN SMART V2.5 创建项目 新建空白项目,打开系统块,选择 CPU ST20,CPU 的固件选择 V2.5,设置选择 CPU 启动后的模式为运行,如图 4 所示。 图 4. 新建项目设置启动模式 2、导入从智能设备导出的 GSD 文件,如图 5 所示。 图 5. 导入GSD 文件 3、在向导中选择 PLC 角色为控制器,并且设置控制器的 IP 地址,如图 6 所示。 图 6. 设置 PLC 角色和 IP 地址 4、从硬件目录中 PROFINET-IO,PLCs,SIEMENS,1215C DC/DC/DC下,选择刚刚添加好的 GSD 文件,拖放至设备表中。此处设备名称和 IP 地址均直接由 GSD 文件指定好,无需再手动修改,如图 7 所示。 图 7. 通过 GSD 文件添加智能设备 5、核对 GSD 文件中已经添加好的传输区,无法修改传输区的数据长度及输入/输出方向,仅可修改传输区条目的起始地址;设置合适的更新时间及数据保持,如图 8 所示。 图 8. 核对添加的传输区域 6、无特殊需求,可以一直点击下一步,然后点击生成。 通信测试 分别下载控制器和智能设备的程序,在状态图表中添加相应的地址区域观察数据交换情况,如图 9 所示。 图 9. 通信测试 应用案例例程,如下所示: S7-1200 项目:S7-1200 Profinet_I-De'vice_V15 S7-200 SMART 项目:S7-200SMART Profinet IO-Controller_V2.5 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200 SMART 之间 ISO-on-TCP 通信案例程序
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 之间 ISO-on-TCP 通信例程 所需条件: 1、软件版本:STEP 7-Micro/WIN SMART V2.2 2、SMART CPU 固件版本: V2.2 3、通讯硬件:TP电缆(以太网电缆) 4、PC (带以太网卡) 所完成的通讯任务: 将作为服务器端(192.168.0.102)的 V3000-VB3003 的数据传送到客户端(192.168.0.101)的 VB3000-VB3003 内。 注意: 在建立连接时需先触发服务器端的建立连接指令,再触发客户端。 ISO-on-TCP_Clent 客户端程序 ISO-on-TCP_server 服务器端程序 以上例程的详细描述可以参考:S7-200 SMART 之间 ISO-on-TCP 通信 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200 SMART Modbus TCP 轮询案例程序
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 多请求处理 S7-200 SMART Modbus TCP 可支持多个连接,最多可达 PLC 允许的开放式用户通信连接的最大数(八个主动(客户端)连接和八个被动(服务器)连接)。 不可避免的会出现以下情况: 1. S7-200 SMART 作为服务器由多个客户端访问 2. S7-200 SMART 作为客户端访问多个服务器 下面就这种多请求处理的情况作相关的介绍。 1. S7-200 SMART 作为服务器由多个客户端访问 S7-200 SMART CPU 作为服务器由多个客户端访问时,需要 S7-200 SMART CPU 多次调用 Modbus TCP 服务器库指令,并且每个服务器需要配置不同的 Port 口,如图 1 所示 。 图 1. S7-200 SMART 多服务器例程 注意: 对应的库存储器地址需要使用建议地址不能重复使用。 S7-200 SMART 的开放式以太网通讯资源是 8 个主动资源 8 个被动资源。 端口号必须在 1 到 49151 的范围内。建议端口号在 2000 到 5000。 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 ST60:6ES7288-1ST60-0AA0 固件:V2.4 版本 该例程 Modbus TCP 服务器,响应 2 个客户端请求,访问不同的 V 存储区 Modbus TCP 多服务器案例程序 2. S7-200 SMART 作为客户端访问多个服务器 S7-200 SMART CPU 作为客户端访问多个服务器,服务器连接参数必须具有不同的 IPAddr 或 IP_Port 输入参数。 情景1:S7-200 SMART 作为客户端访问多个服务器: 解决方法:确保连接富余,可以建立多个不同的连接发送请求,调用 "MBUS_CLIENT",S7-200 SMART CPU 内通过设置的不同的远程 IP 地址、端口号尝试建立连接。 该情景的相关步骤用户根据以上原则,自行编程即可。 情景 2:S7-200 SMART 作为客户端,访问同一个服务器,需要进行多次读写操作; 解决方法:借助于同一个连接,考虑客户端做轮询 ,远程 IP 地址、端口号一致,分时调用“MBUS_CLIENT”指令,具体参考下方的轮询通信例程。 轮询原则:在任意时间,只能有一个客户机请求处于激活状态,在一个请求完成执行后,下一个请求再开始执行,循环处理。 2.1. Modbus TCP 客户端轮询例程 本例程中使用 done 位做轮询,相比于用定时器做轮询,不会因为定时触发时间设置的过小导致两个指令冲突,或者定时触发时间设置过大增加通信时间的问题。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 ST60: 6ES7288-1ST60-0AA0 固件:V2.4 版本,IP 地址:192.168.0.121 2. 该例程仅访问一个服务器,两个 MBUS_CLIENT 指令轮询执行写和读,写入和读取服务器寄存器类型地址: 40001-40002 共 2 个字,将需要写入服务器的数据放在 VB700-VB703 区域中,从服务器中读取的数据存储在本地的 VB704-VB707 区域中。 Modbus TCP 客户端轮询案例程序 为配合上方的客户端轮询程序,服务器的程序可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本,IP 地址:192.168.0.113 2. 该例程 Modbus TCP 服务器,响应客户端请求,将数据存储在 VB0-VB3 的区域中,等待客户端写入和读取。 Modbus TCP 服务器案例程序 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200 SMART CPU 与 S7-1200 CPU 集成 PN 口的 ISO on TCP 通信 (S7-200 SMART 作为客户端)
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART CPU 与 S7-1200 CPU 集成 PN 口的 ISO on TCP 通信 (S7-200 SMART 作为客户端) S7-200 SMART CPU 与 S7-1200 CPU 通过 ISO on TCP 通信,需要在双方都建立连接。在 S7-1200 调用 T-block 指令 (TCON, TDISCON, TSEND, TRCV) 、在 S7-200SMART 调用 Open User Communication库指令 (ISO_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV),来实现。通信方式为双边通信,因此双方的发送和接收指令必须成对出现。 注意: S7-200 SMARTPLC V2.2 版本才开始支持 ISO on TCP 通信,早期版本的 CPU 需要升级固件后方可支持 ISO on TCP。 硬件: ① S7-1200 CPU (IP地址: 192.168.0.203 子网掩码: 255.255.255.0) ② S7-200 SMART CPU (固件 V2.5) (IP地址: 192.168.0.223 子网掩码: 255.255.255.0) 软件: ① STEP7 V15 ② STEP 7 Micro/WIN SMART V2.5 所完成的通信任务: ① S7-200 SMART 将 VB 3000 开始的 5 个字节发送到 S7-1200 通信数据区 DB11中 ; ② S7-200 SMART 读取 S7-1200 中的数据区 DB12 的 5个字节 的数据存放到 VB3100 开始的 5 个字节中。 S7-200 SMART 侧编程 1.调用 ISO_CONNECT 指令建立连接,伙伴 TSAP (RemTsap) 与本地 TSAP (LocTsap) 必须与 S7-300 中的连接配置交叉对应,如图 1 所示。 图 1. 调用 ISO_CONNECT 建立连接指令 2. 调用 TCP_SEND 指令发送数据,如图 2 所示。 图 2. 调用 TCP_SEND 发送指令 3. 调用 TCP_RECV 指令接收数据,如图 3 所示。 图 3. 调用 TCP_RECV 接收指令 4. 为通信指令分配库存储器,如图 4 所示。 图 4. 为库存储器分配地址 S7-1200 侧硬件组态和编程 1. 使用 STEP7 V15 软件新建一个项目,添加 1 个 S7-1200 站点并为其分配网络和 IP 地址,如图 5 所示。 图 5. 组态 S7-1200 并分配 IP 地址 为编程方便,使用 CPU 属性中定义的时钟位,在设备视图双击 CPU 设置 "系统和时钟存储器",如图 6 所示。 图 6. 启用时钟位 2. 在 S7-1200 中调用建立连接指令,进入 "项目树" > " PLC_1" > "程序块" > "OB1" 主程序中,从右侧窗口 "指令"> "通信">"开放式用户通信" 下调用 "TCON" 指令,配置连接参数,如图 7 所示。 图 7. 调用 "TCON" 指令并配置连接参数 3. 创建发送数据块 DB11(接收区数据块 DB12 类似),数据块中定义 100 个字节的数组,数据块的属性中需要取消 "优化的块访问" 选项,如图 8 所示。 图 8. 创建发送数据块 DB11 4. 在 OB1 中调用 TSEND 指令来发送数据,如图 9 所示。 图 9. 调用 TEND 发送指令 5. 在 OB1 中调用 TRCV 指令来发送数据,如图 10 所示。 图 10. 调用 TRCV 发送指令 通信测试 分别下载控制器和智能设备的程序,在状态图表中添加相应的地址区域观察数据交换情况,如图 11 所示。 图 11. 通信测试 应用案例例程,如下所示: S7-200 SMART 程序:ISO-on-TCP_Client_V2.5 S7-1200 程序:ISO-on-TCP_Server_V15 免责声明 本例程仅供参考,程序中的CPU版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200-SMART Modbus TCP 通讯示例
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
Modbus TCP 单站例程 1.Modbus TCP 客户端例程 为了更好地理解 Modbus TCP 客户端的编程,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本,IP地址:192.168.0.60 2. 该例程仅访问一个服务器,读取服务器寄存器类型地址,40001-40006 共 6 个字,读取数据存储在本地的 VB20-VB31 区域中。 Modbus TCP 客户端指令库应用例程 以上例程的详细描述可以参考:S7-200 SMART Modbus TCP 客户端 2. Modbus TCP 服务器例程 为了更好地理解 Modbus TCP 服务器的编程,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 ST20:6ES7288-1ST20-0AA0 固件:V2.4 版本,IP 地址:192.168.0.20 2. 该例程 Modbus TCP 服务器,响应客户端请求,将数据存储在 VB0-VB11 的区域中,等待客户端读取。 Modbus TCP 服务器指令库应用例程 以上例程的详细描述可以参考:S7-200 SMART Modbus TCP 服务器 Modbus TCP 多请求处理 为了更好地理解 Modbus TCP 服务器的编程,可参考下面的例程。 以下例程的详细描述可以参考:S7-200 SMART 多请求处理 1. S7-200 SMART 作为服务器由多个客户端访问 注意: 对应的库存储器地址需要使用建议地址不能重复使用。 S7-200 SMART 的开放式以太网通讯资源是 8 个主动资源 8 个被动资源。 端口号必须在 1 到 49151 的范围内。建议端口号在 2000 到 5000。 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 ST60:6ES7288-1ST60-0AA0 固件:V2.4 版本 该例程 Modbus TCP 服务器,响应 2 个客户端请求,访问不同的 V 存储区 Modbus TCP 多服务器例程 2. S7-200 SMART 作为客户端轮询 本例程中使用 done 位做轮询,相比于用定时器做轮询,不会因为定时触发时间设置的过小导致两个指令冲突,或者定时触发时间设置过大增加通信时间的问题。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 ST60: 6ES7288-1ST60-0AA0 固件:V2.4 版本,IP 地址:192.168.0.121 2. 该例程仅访问一个服务器,两个 MBUS_CLIENT 指令轮询执行写和读,写入和读取服务器寄存器类型地址: 40001-40002 共 2 个字,将需要写入服务器的数据放在 VB700-VB703 区域中,从服务器中读取的数据存储在本地的 VB704-VB707 区域中。 Modbus TCP 客户端轮询例程 为配合上方的客户端轮询程序,服务器的程序可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是 SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本,IP 地址:192.168.0.113 2. 该例程 Modbus TCP 服务器,响应客户端请求,将数据存储在 VB0-VB3 的区域中,等待客户端写入和读取。 Modbus TCP 服务器例程 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 S7-200 SMART Modbus TCP 相关视频如下 S7-200 SMART Modbus TCP 通讯学习视频教程 S7-200 SMART Modbus TCP 通讯练习视频教程 -
西门子 SIMATIC S7-200 SMART 读写 V90 PN 的驱动参数
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 读写 V90 PN 的驱动参数 PLC 通过编程软件中提供的 SINAMICS 库功能块 SINA_PARA_S 可以读取或修改 V90 PN 中的参数。 文档下载 文档号:109766737:S7-200 SMART 读写 V90PN 的驱动参数 例程 为了更好地理解 V90 PN 驱动参数的读写,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART 编写。 2. 下载前核实实际使用的 CPU 是否与例程中一致,不一致的话需要修改系统块中组态的 CPU,并前往 PROFINET 向导重新点击生成,然后再下载。 SINAMICS V90 PN with S7-200 Smart PLC 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200 SMART 通过 PROFINET 连接V90 PN 实现基本定位控制
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 通过 PROFINET 连接 V90 PN 实现基本定位控制 从 S7-200 SMART V2.4 版本开始,标准型 CPU 支持做 PROFINET IO 通信的控制器。可以带 PROFINET IO 设备,本文档以 S7-200 SMART 带 V90PN 作 IO 设备为例,介绍 PROFINET 通信及 SINAMICS 库的配置及编程步骤。 软件: STEP7 Micro/WIN SMART V2.5 硬件: IO 控制器: CPU: ST40 IP 地址:192.168.0.200 CPU 固件:V2.5 IO 设备: V90PN IP 地址:192.168.0.90 设备名称:v90pn S7-200 SMART PROFINET 通信相关视频链接如下: S7-200 SMART PROFINET 通信概述 S7-200 SMART 作为控制器连接 V90 向导配置学习 S7-200 SMART 作为控制器连接 V90 向导配置练习 S7-200 SMART PROFINET 向导组态配置方法 1、按照导入 GSD 文件的方法,将 V90PN 的 GSD 文件导入到 STEP7 MicroWIN SMART 中,方法见: 如何导入 GSD 文件。 2、打开 PROFINET 向导,有两种方法,可以使用其中之一。如图 1 打开 PROFINET 向导方法所示。 图 1. 打开 PROFINET 向导方法 3、在打开的 PROFIENT 配置向导对话框中的 PLC 角色处,选择 PLC 角色为“控制器”,设置控制器的 IP 地址,然后单击下一步。如图 2 选择 PLC 角色所示。 图 2. 选择 PLC 的角色 4、从右侧设备目录选择已添加的 V90PN 的 GSD,直接从硬件目录拖拽或者点击添加按钮,将 V90PN 添加到设备表中,然后单击下一步。如图 3 添加设备所示。 图 3. 添加设备 5、设置 V90PN 的设备名称及 IP 地址,保证与 S7-200 SMART CPU 设置的 IP 地址在同一网段。然后单击下一步。如图 4 设置 IP 地址及设备名称所示。 图 4 设置IP地址及设备名称 6、添加报文,设置更新时间及数据保持,然后单击下一步。如图 5 添加报文设置更新时间及数据保持所示。 图 5 添加报文设置更新时间及数据保持 7、查看相关的模块参数信息,如图 6 查看模块参数信息所示。 图 6. 查看模块参数信息 8、检查配置参数没有问题,单击“生成”结束 PROFINET 配置向导。向导配置界面自动关闭。如图 7 单击生成完成配置所示。 图 7. 单击生成完成配置 9、弹出对话框,将通信背景时间默认被修改为 20%,点击 "OK" 进行确认即可。如图 8 通信背景时间被修改所示。 图 8 通信背景时间被修改 V-ASSISTANT 组态 1、使用数据线连接 V90PN 和 V-ASSISTANT 软件,在线获取配置后,点击选择驱动,控制模式选择为基本定位控制(EPOS),如图 9 所示。 图 9. 设置控制模式 2、点击设置 PROFINET,选择报文,设置当前报文为:111: 西门子报文,PZD-12/12,如图 10 所示。 图 10. 选择报文。 注意: 在 V-ASSISTANT 中设置的控制模式及报文,需要与 S7-200 SMART 中 PROFINET 向导中组态的报文相对应 报文111,对应控制模式为基本定位控制; 报文1,对应控制模式为速度控制。 3、设置 V90PN 的 IP 地址和设备名称,在线状态下,点击保存并激活按钮。需要保证此处设置的设备名称和 IP 地址,与 S7-200 SMART PROFINET 向导中组态的保持一致。如图 11 所示。 图 11. 设置 V90PN 设备名称及 IP 地址 注意:V90PN 的设备名称和 IP 地址除了可以使用 V-ASSISTANT 软件设置以外,还可以使用 STEP7 MicroWIN SMART 软件的查找 PROFINET 设备功能,方法见: 查找 PROFINET 设备。 4、在 V-ASSISTANT 中设置参数按钮下还包含有“设置机械结构”、“设置参数设定值”、“配置回零参数”、“查看所有参数”选项需要进行设置或者查看参数,按照实际需要进行设置,如图 12 所示。 图 12. 设置其他参数 调用 SINAMICS 库指令编程 上述配置实现 S7-200 SMART CPU 与 V90PN 之间 实现 PROFINET 通信。 通信成功建立后,具体运动控制功能需要通过调用 SINAMICS 库实现,如图 13 所示。 图 13. SINAMICS 库 具体调用指令方法参考文档:[文档编号:109766598] S7-200 SMART 通过 PROFINET 连接 V90 PN 实现基本定位控制 注意: 调用指令库编程后,需要分配库存储区,推荐手动指定库存储区的起始地址。 例程 为了更好地理解 V90 PN 基本定位控制,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART 编写。 2. 下载前核实实际使用的 CPU 是否与例程中一致,不一致的话需要修改系统块中组态的 CPU,并前往 PROFINET 向导重新点击生成,然后再下载。 SINAMICS V90 PN EPOS function with S7-200 Smart PLC 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200 SMART PROINET 通信常见问题
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART PROINET 通信常见问题 1、紧凑型 CPU 是否支持 PROFINET 通信? 答:标准型 SR/ST CPU 从 V2.4 版本开始,支持作 PROFINET IO 控制器,从 V2.5 版本开始支持作智能设备。 紧凑型 CPU CRs 未包含以太网接口,所以不支持 PROFINET 通信相关的功能。 2、做 PROFINET 通信,是否可以使用第三方交换机? 答:可以,但是,Profinet IO 通信中如果使用了不能识别 RT 实时数据优先级的第三方交换机时,实时数据不会被交换机优先转发。使用这类交换机时,为了避免因达到看门狗时间数据未更新而造成通信故障误报,需要调整 IO 设备的更新时间和看门狗时间。 Profinet RT 性能等级的通信,需使用符合“PROFINET 一致性等级 A”或更高等级的交换机。所有西门子 SCALANCE 系列交换机都满足这些要求。 如果还需要使用其它 PROFINET 功能(例如,拓扑识别、诊断、不带可更换介质时支持设备更换),必须使用符合“PROFINET 一致性等级 B”或更高等级的交换机。 3、最大模块数量 64 如何理解? 答:最大模块数为所有设备的模块加在一起的数量。 举例如图 1 所示: 组态 8 个 ET200SP IM155-6 PN HF 接口模块,在其中一个接口模块下面进行组态 DI16 ST 数字量输入模块,组态到 56 个 DI 模块以后,再添加模块时,会弹出对话框,如图 2 示。 图 1. 组态举例 图 2. 设备模块总数 4、设备编号是否可以修改? 答:不可以修改,S7-200 SMART 最多可以带 8 个 IO 设备,设备编号从 1-8 是固定的,如图 3 所示。 图 3. 设备编号不可修改 5、如何导入 S7-1200/1500/300/400 通过 TIA Portal 导出的 GSD 文件? 答:在自行测试时,S7-200 SMART 可以和例如 S7-1200 智能设备通信。 TIA Portal 导出 GSD 文件,添加到 S7-200 SMART 后,组态 PROFINET 向导,点击生成后报错如图 4 所示 图 4 报错 需要在导出 GSD 文件之前,需要进行勾选,如图 5 所示 图 5. 勾选参数 6、为什么和 V90PN 通信有错误出现时,PLC 信息无诊断信息显示? 答:查看 PROFINET 向导配置时的组态 激活诊断选项,默认是:当前无效,需要选择:标准报警,否则有错误不会在 PLC 信息中显示出来,如图 5 所示 图 6. 激活诊断 7、PROFINET 通信控制器和 IO 设备是否可以跨网段通信? 答:基于网络结构模型,做 PROFINET 通信时,不可以跨网段通信,IO 设备和控制器必须处于同一子网中! -
西门子 SIMATIC S7-200 SMART 的 PROFINET 通信概述
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 的 PROFINET 通信概述 PROFINET IO 是 PROFIBUS International 基于以太网的自动化标准。它定义了跨供应商通信、自动化和工程组态模型。借助 PROFINETIO,可采用一种交换技术使所有站随时访问网络。因此,多个节点可同时传输数据, 进而可更高效地使用网络。数据的同时发送和接收功能可通过交换式以太网的全双工操作来实现(带宽为 100 Mbps)。 PROFINET IO 系统由下列设备组成: PROFINET 控制器,控制自动化任务。 PROFINET 设备,是现场设备,由 PROFINET 控制器进行监视和控制。PROFINET 设备可包含多个模块和子模块。 软件,通常基于 PC,用于设置参数和诊断各个 PROFINET 设备。 PROFINET 的目标如下: 实现工业联网,基于工业以太网(开放式以太网标准) 实现工业以太网与标准以太网组件的兼容性 凭借工业以太网设备实现高稳健性。工业以太网设备适用于工业环境(例如温度和抗干扰性) 实现实时功能 其他现场总线系统的无缝集成 从 STEP STEP 7-Micro/WIN SMART V2.4 和 S7-200 SMART V2.4 CPU 固件开始,标准型 CPU(ST/SR 型 CPU)支持 PROFINET IO 控制器; 从 V2.5 版本开始,支持作智能设备。 图 1. S7-200SMART PROFINET 通信概述 S7-200 SMART 做 PROFINET IO 通信的具体参数如表 1 所示。 表 1. 参数 通信角色 说 明 ST20/SR20 ST30/SR30 ST40/SR40 ST60/SR60 IO 控制器 设备编号范围 1-8 (不可修改) 最大模块数量 64 每个设备最大输入区域 128 字节 过程映像输入区地址范围 I128.0 至 I1151.7,共 8 个设备,1024 字节 (每个设备占用 128 字节,顺序递增,例如 2 号 PROFINET 设备的过程输入寄存器地址从 I256.0~I383.7)每个设备最大输出区域 128 字节 每个设备最大输入区域 128 字节 过程映像输出区地址范围 Q128.0 至 Q1151.7, 共 8 个设备,1024 字节 (每个设备占用 128 字节,顺序递增,例如 2 号 PROFINET 设备的过程输出寄存器地址从 Q256.0~Q383.7) 更新时间 最小值还取决于为 PROFINET 设置的通信组件、PROFINET 设备的数量以及已组态的用户数据量。 I-Device 支持的 IO 控制器数 1个 最大输入区域 128 字节 过程映像输入区域 I1152.0 至 I1279.7 最大输出区域 128 字节 过程映像输出区域 Q1152.0 至 Q1279.7 S7-200 SMART 从组态到启动的过程如图 2 所示 图 2. PROFINET 通信组态至启动过程 S7-200 SMART 做 PROFINET 通信配置一般可以分为如下几部分: 在 STEP 7-Micro/WIN SMART 中添加 PROFINET IO 设备的 GSD 文件 配置 PROFINET 向导 为 PROFINET IO 设备分配设备名称 PROFINET 诊断(如需要)方法: 查看 CPU 指示灯状态 通过 PLC 信息 使用特殊存储器 S7-200 SMART I-Device 概述 S7-200 SMART 在 V2.5 版本(硬件和软件)增加标准型 CPU 支持 PROFINET IO 智能设备的功能。作为智能设备可以与 IO 控制器交换数据最大输入128 字节/输出 128 字节。 什么是智能设备功能? 智能设备是采用 “智能 IO 设备” 组态的 CPU。 CPU 的智能设备功能允许在 CPU 与上级 IO 控制器之间进行数据交换的同时作为下级 IO 设备的 IO 控制器。 集中式或分布式 (PROFINET IO) I/O 中采集的过程值由用户程序进行预处理,并通过 PROFINET IO 接口提供给上位 IO 控制器。 图 3. I-Device S7-200 SMART V2.5 支持两种类型的智能设备: 不带下级 PROFINET IO 系统的智能设备 带下级 PROFINET IO 系统的智能设备 不带下级 PROFINET IO 系统的智能设备 智能设备自身没有分布式 IO。具有 IO 设备角色的智能设备的组态和参数分配与分布式 I/O 系统相同。 图 4. 不带下级 PROFINET IO 系统的智能设备 带下级 PROFINET IO 系统的智能设备 智能设备除了具有 IO 设备角色之外,也可以用作 PROFINET 接口上的 IO 控制器。 这意味着,智能设备可通过其 PROFINET 接口而成为上位 IO 系统的一部分,并可作为 IO 控制器来支持自身的下级 IO 系统。 下级 IO 系统可以包含智能设备。这样就可实现分层的 IO 系统结构。 注意: 如果 S7-200 SMART CPU 作为带下级 PROFINET 系统的智能设备,支持的最大下级 IO 设备数为 8,并且只支持一个上位控制器。 图 5. 带下级 PROFINET IO 系统的智能设备 -
西门子 SIMATIC S7-200 SMART I-Device 概述
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART I-Device 概述 S7-200 SMART 在 V2.5 版本(硬件和软件)增加标准型 CPU 支持 PROFINET IO 智能设备的功能。作为智能设备可以与 IO 控制器交换数据最大输入128 字节/输出 128 字节。 什么是智能设备功能? 智能设备是采用 “智能 IO 设备” 组态的 CPU。 CPU 的智能设备功能允许在 CPU 与上级 IO 控制器之间进行数据交换的同时作为下级 IO 设备的 IO 控制器。 集中式或分布式 (PROFINET IO) I/O 中采集的过程值由用户程序进行预处理,并通过 PROFINET IO 接口提供给上位 IO 控制器。 图 1. I-Device S7-200 SMART V2.5 支持两种类型的智能设备: 不带下级 PROFINET IO 系统的智能设备 带下级 PROFINET IO 系统的智能设备 不带下级 PROFINET IO 系统的智能设备 智能设备自身没有分布式 IO。具有 IO 设备角色的智能设备的组态和参数分配与分布式 I/O 系统相同。 图 2. 不带下级 PROFINET IO 系统的智能设备 带下级 PROFINET IO 系统的智能设备 智能设备除了具有 IO 设备角色之外,也可以用作 PROFINET 接口上的 IO 控制器。 这意味着,智能设备可通过其 PROFINET 接口而成为上位 IO 系统的一部分,并可作为 IO 控制器来支持自身的下级 IO 系统。 下级 IO 系统可以包含智能设备。这样就可实现分层的 IO 系统结构。 注意: 如果 S7-200 SMART CPU 作为带下级 PROFINET 系统的智能设备,支持的最大下级 IO 设备数为 8,并且只支持一个上位控制器。 图 3. 带下级 PROFINET IO 系统的智能设备 -
西门子 SIMATIC S7-200 SMART 作为 PROFINET IO 控制器通信诊断
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
PROFINET 通信诊断 在进行 PROFINET IO 通信 IO 控制器/智能设备的过程中,有可能会出现错误,对于 PROFIENT 通信诊断,有如下三种方法: 通过 CPU 指示灯状态诊断 通过 PLC 信息诊断 通过特殊存储器诊断 方法一:通过 CPU 指示灯状态诊断 如果 S7-200 SMART CPU 作为 PROFIENT 控制器和 PROFINET IO 设备进行通信。可以查看如下表中 LED 状态查看 CPU 所处的状态,进行简单的诊断。见表 1 所示。 表 1. LED 指示灯状态诊断 CPU 状态 工作状态 LED 指示灯 说明 RUN STOP ERROR 作 PROFINET 控制器工作时 STOP 灭 开 1 Hz闪烁 CPU 处于 STOP 模式且任何已组态的 PROFINET 设备失去连接或收到警告时适用。 作 PROFINET 控制器工作时 RUN 开 灭 1 Hz 闪烁 CPU 处于 RUN 模式且任何已组态的 PROFINET 设备失去连接或收到警告时适用 作智能设备时 RUN 开 灭 1 Hz 闪烁 CPU 处于 RUN 模式且与上位 IO 控制器未连接或者组态不匹配时适用 从表1. 中可以看出: 当 S7-200 SMART 组态为 PROFINET 控制器后,无论 CPU 出于停止还是运行,失去连接或者出现警告时,ERROR 指示灯会以 1Hz 闪烁。 当 S7-200 SMART 组态为 PROFINET 智能设备后,当与上位 IO 控制器未连接或者组态不匹配时,ERROR 指示灯会以 1Hz 闪烁。 方法二:通过 PLC 信息诊断 S7-200 SMART 作为控制器时,通过 PLC 信息可以查看相关 PROFINET 通信故障的诊断信息。 1、通信搜索到 CPU 2、菜单栏选择 PLC,然后在菜单栏功能区选择 PLC,如图 1 所示 图 1. 打开 PLC 信息 3、打开的 PLC 信息对话框,如图 2 所示。 图 2. PLC 信息 ① 为系统页面系统对话框显示的:已组态的 PROFINET 设备 (Configured PROFINET device):PROFINET 设备的状态 状态如下: 不可用 (Not available):CPU 无法找到设备 正常 (OK) 诊断 (Diagnosis):报告警告。 ② 为已经组态的 IO 设备,点击 ② 可以查看具体某个设备的信息 ③ 为事件日志 ④ 为 PROFINET 报警 4、点击已经组态的 IO 设备,查看有关设备的详细信息,如图 3 所示 图 3. PROFINET 设备详细信息 ① 处显示设备信息,包含、设备名称、设备类型、设备编号、转换后的名称以及 IP 地址 ② 显示设备状态: 不可用 (Not avaliable):CPU 无法找到设备,设备名称与实际设备不符 正常 (OK) 诊断 (Diagnosis):报告警告。 ③ 模块状态 该对话框显示插槽中每个模块的状态。模块状态分类如下: 正常 (OK) 错误 (Error):如果单击 "状态" 列中的 "错误" 按钮,则会在右侧显示相应的详细错误信息。 图 3 中所示错误为,ET200SP 插槽 1 所使用的底座为白色底座,在组态中没有组态启用新的电位组,所以报错 5、通过事件日志查看 CPU 存储的事件历史记录,包括上电、掉电、错误以及模式跳转等事件。还列出了事件发生时间。显示的事件日志的最大数量为 32。如图 4 所示 图 4. 事件日志 6、查看PROFIENT报警,显示 PROFINET 相关的警告信息:设备编号、设备名称、插槽编号、子插槽编号以及警告描述。如图 5 所示 图 5. PROFINET 报警 S7-200 SMART 作为智能设备时,可以通过 PLC 信息查看智能设备的状态,如图 6 所示 图 6. 智能设备诊断 也可以在事件日志中查看,如图 7 所示。 图 7. 事件日志查看诊断 方法三:通过特殊存储器诊断 从 V2.4 版本开始,S7-200 SMART 预留特殊存储器 SMB1807-SMB1935 用于 PROFINET 通信诊断。 注意!如果程序使用的范围为 SMB1800 至 SMB1999 且是在 STEP 7-Micro/WIN SMART V2.3 或更早版本中创建的,则程序在 V2.4 将被清除,必须重新编辑程序以使用其它读/写 SM 地址。 从 V2.5 版本开始,S7-200 SMART 预留 SM1936.0-SM1937.0 用于诊断智能设备和上位控制器的通信连接状态和 IO 数据状态。 具体存储区分配表 2 所示 表 2. 特殊存储器使用分配 SM 地址 设备编号 诊断内容 含义说明 SMB1800-SMB1807 SMB1800 1 诊断站点状态 每字节的数值 对应每个设备的状态。 00H:不提供。 80H:正常。 81H:诊断。(设备已断开连接。) 82H:有错。(设备已连接,但有些模块存在报警。) SMB1801 2 SMB1802 3 SMB1803 4 SMB1804 5 SMB1805 6 SMB1806 7 SMB1807 8 SMB1808-SMB1871 SM 1808.0-1815.7 1 诊断模块报警状态 每个设备 8 个字节(64位) 每位对应每个模块的报警状态 0 为正常;1 为故障 SM 1816.0-1823.7 2 SM 1824.0-1831.7 3 SM 1832.0-1839.7 4 SM 1840.0-1847.7 5 SM 1848.0-1855.7 6 SM 1856.0-1863.7 7 SM 1864.0-1871.7 8 SMB1872-SMB1935 SM 1872.0-1879.7 1 诊断模块数据状态 每个设备 8 个字节(64位) 每位对应每个模块的数据状态 0 为正常;1 为错误 SM 1880.0-1887.7 2 SM 1888.0-1895.7 3 SM 1896.0-1903.7 4 SM 1904.0-1911.7 5 SM 1912.0-1919.7 6 SM 1920.0-1927.7 7 SM 1928.0-1935.7 8 SMB1936 SMB1936 - 智能设备与 控制器 连接状态 每字节的数值 对应每个设备的状态。 00H:未组态。 80H:正常。 81H:未连接。(智能设备未连接控制器。) 82H:诊断。(智能设备与控制器已经连接,但智能设备的组态与上位控制器不匹配) SM1937.0 SM1937.0 - 智能设备 IO 数据状态 IO 数据状态 0 为正常;1 为数据错误 -
西门子 SIMATIC S7-200 SMART 作为 PROFINET IO 控制器如何给设备分配名称
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
查找 PROFINET 设备 使用软件菜单“查找 PROFINET 设备”功能仅可以实现给 PROFINET IO 设备分配设备名称的功能。设置步骤如下所示: 1、打开查找 PROFINET 设备的方法有两种,如图1.查找查找 PROFINET 设备所示。 图 1. 查找 PROFINET 设备 2、在弹出的查找设备对话框中选择通信接口为本机网卡驱动,点击查找设备,找到所连接的 V90PN,选中已经查找到的设备,点击右侧编辑按钮。如图 2 查找设备所示。 图 2. 查找设备 注意! 所有 PROFINET 设备都必须具有设备名称。使用 STEP 7-Micro/WIN SMART 来定义设备名称。通过 PROFINET DCP(发现和组态协议)为设备分配设备名称。 确保 PROFINET 设备和 PC 位于同一子网中。 3、填写要修改的设备名称,点击设置后名称修改生效。如图 3 设置名称所示。 图 3. 设置名称 注意! 查找 PROFINET 设备仅能修改 IO 设备的设备明称,无法修改 IP 地址及子网掩码,IO 设备的 IP 地址及子网掩码需要在 PROFINET 向导配置中修改。 要修改的设备名称需遵守标准 DNS(域名系统)命名规范。命名规则如下: 最多支持 63 个字符。 设备名称可以包括小写字母 a 至 z、数字 0 至 9、连字符“-”和句点“.”。 设备名称可以包括中文字符(简体或繁体)。 设备名称不可使用 n.n.n.n 格式,其中 n 取 0 到 999 之间的值。 设备名称不能以字符串 port-nnn 或字符串 port-nnn-nnnnn 开始,其中 n 是 0 到 9 的数字。例如,port-123 和 port-123-45678 为无效设备名称。 设备名称不能以连字符“-”或句点“.”开始或结束。 -
西门子 SIMATIC S7-200 SMART 作为 PROFINET IO 控制器如何添加/删除/导出 GSD 文件
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
添加 GSD 文件 标准型 SR/ST CPU 从 V2.4 版本开始,支持作 PROFINET IO 控制器,从 V2.5 版本开始支持作智能设备。可以将 PROFINET IO 设备的 GSD 文件导入到 STEP 7-Micro/WIN SMART 中,也可以通过 STEP 7-Micro/WIN SMART V2.5 导出 GSD 文件实现 PROFINET 通信。 什么是 GSD 文件? GSD( General Station Description )文件即通用站描述文件,用于存储设备属性,使用 GSDML(通用站描述标记语言)确定其结构和规则;通常 GSD 文件的后缀名为 .XML。 从何处获取 GSD 文件? 可从所使用的 PROFINET IO 设备的制造商处获取到该设备的 GSD 文件,然后将其导入到 STEP 7-Micro/WIN SMART 中 例如:S7-200 SMART 要和 V90PN 通信,可以从以下链接地址获取到 V90PN 的 GSD 文件 https://support.industry.siemens.com/cs/cn/en/view/109737269 使用 STEP 7-Micro/WIN SMART 导入 GSD 文件,对 GSD 版本的要求? 支持 GSD V2.33 或更早版本,软件会根据 GSDML 模式 V2.33 对 GSDML 文件进行验证。如果对象通过验证,STEP 7-Micro/WIN SMART 会将其置于目录中。 对于高于 V2.33 的 GSD 文件,也可以进行导入,但 STEP 7-Micro/WIN SMART 不会验证 GSDXML 模式。属性 "RequiredSchemaVersion" 指定版本高于 V2.33 的所有对象(包括 DAP(设备访问点)、模块和子模块)均会被忽略。 STEP 7-Micro/WIN SMART 不会对其描述进行检查,也不会将其置于设备目录中。 添加 GSD 文件步骤 1、从设备制造商处获取 GSD 文件,并且将该文件(如是压缩包,需提前解压缩)存储在某个路径下,本示例 GSD 文件存储路径为 D:\PROFINET_test。 2、打开STEP 7-Micro/WIN SMART,点击菜单栏的文件菜单>GSDML 管理。如图 1 点击 GSDML 管理 所示。 图 1. 点击 GSDML 管理 3、在弹出的对话框中选择浏览,如图 2 GSDML 管理中点击浏览所示。 图 2. GSDML 管理中点击浏览 4、找到存储 GSD 文件的路径,选择文件并打开,如图 3 路径中选择文件并打开所示。 图 3. 路径中选择文件并打开 5、如图 4 GSD 文件导入完毕所示,已经将 V90PN 导入至 STEP 7-Micro/WIN SMART 中。 图 4 GSD 文件导入完毕 删除 GSD 文件步骤 紧接步骤 5 所示界面,对于长期不使用的 GSD 文件,在“导入的 GSDML 文件”列表中,勾选想要删除的文件的复选框,点击删除。 图 5. 删除 GSD 文件 在弹出的对话框中点击 Yes,即可删除 GSD 文件,如图 6 确认删除所示。 图 6. 确认删除 导出 GSD 文件步骤 打开 PROFINET 向导 1、勾选 PLC 角色为智能设备;以太网端口选择固定 IP地址及站名:IP 地址是 192.168.0.40,子网掩码是 255.255.255.0,设备名称是 st40。如图 7 所示。 图 7. 设置 PLC 角色 IP 地址及设备名称 2、添加传输区,第一个条目是从 IB1152 开始的 10 个字节输入区域,第二个条目是从 QB1152 开始的 10 个字节输出区域,浏览合适的路径用来存储 GSD 文件,然后直接导出 GSD 文件。如图 8 所示。 图 8. 添加传输区并导出 GSD 文件 3、导出的 GSD 文件如图 9 所示。 图 9. 导出的 GSD 文件 -
西门子 SIMATIC S7-200 SMART 作 PROFINET 控制器带 “标准” IO 设备
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 作 PROFINET 控制器带 “标准” IO 设备 S7-200 SMART 作 PROFINET 控制器最多可带 8 个 IO 设备(例如:远程 IO、阀岛、变频器、伺服和机器人等)。PROFINET 控制器对连接的 IO 设备进行寻址,与现场设备交换输入和输出信号。 只有标准型且固件版本为 V2.4 及以上的 S7-200 SMART CPU 才支持 PROFINET 控制器功能。 本文仅以 ET200SP 作为 IO 设备为例,介绍配置步骤,至于其他 IO 设备,组态步骤类似。 硬件和软件需求及所完成的通信任务 硬件: ① S7-200 SMART 标准 CPU V2.5 (文档中 S7-ST40 DC/DC/DC 订货号:6ES7288-1ST40-0AA0) ② PC(带以太网卡),TP 电缆 (以太网电缆) ③ 分布式 IO(文档中使用 ET200SP 接口模块 IM 155-6 PN ST V4.1 订货号:6ES7155-6AU01-0BN0) 软件: STEP7-MicroWIN SMART V2.5 所完成的通信任务: ① S7-200 SMART 读取 IM 155-6 PN ST 数字量输入信号 IB128 的数值 ② S7-200 SMART 向 IM 155-6 PN ST 数字量输出信号 QB128 写入十进制数值 100,观察数字量输出模块的变化。 配置步骤 1. 打开 STEP7-MicroWIN SMART 软件选择 CPU 双击 CPU ST40 打开系统块,在 CPU 栏选择实际的 CPU 型号和固件版本。 图 1 添加S7-200 SMART CPU 2. 添加 ET200SP GSD文件 点击 ”文件 “> ”GSDML文件管理“ > “浏览” 选择相应 GSD 文件存放位置 > “确认”,如图 2 所示。 图 2 添加 ET200SP GSD 文件 3. S7-200 SMART 硬件组态及参数分配 点击 “向导” > “PROFINET" > ”PLC 角色“ >勾选“控制器“,并设置 PLC 的 IP 地址和站名等参数,完成后点击”下一步“,如图 3 所示。 图 3 选择 PLC 的角色 通过右侧 "PROFINET-IO" > "I/O" > "SIEMENS" > "ET200SP" > "Interface modules" > "IM 155-6 PN ST" > "IM 155-6 PN ST V4.1" > "添加”,添加 ET200SP 到设备表中,如图 4 所示。 图 4 添加 ET200SP 到设备表中 接着需要给 ET200SP 设置 IP 地址和设备名,通过在设备表中, IP 设置选择用户设置,在 IP 地址栏输入 IP 地址,设备名栏输入设备名,完成后点击“下一步”,如图 5 所示。 图 5 设置 IP 地址和设备名 然后为 IM155-6PN ST 添加 IO 模块,并定义 PNI/PNQ 的起始地址,完成后点击“下一步”,如图 6 所示。 图 6 添加 IO 模块 需要注意底座颜色(浅色为使用新的电位组,深色为使用左侧模块的电位组),以及 IO 模块的版本,如图 7 所示修改底座颜色,修改完各项参数后,点击“生成”。 图 7 修改底座颜色 Potential group 然后在“工具” 〉“查找PROFINET 设备” 〉“编辑”,点击“编辑”后,“编辑”会自动变为“设置”,输入 ET200SP 组态的设备名后点击“设置”, 给 IM155-6PN ST 分配设备名完毕。 分配设备名前,如图 8 所示。 图 8 分配设备名前 分配设备名后,点击“查找设备”进行更新在线 IO 设备信息,如图 9 所示。 图 9 分配设备名后 此时 S7-200 SMART 与 ET200SP 的通信组态已完成,编译后,下载程序到 PLC 中,在状态图表中监控 IB128 变量的数据,给 QB128 变量赋值,观察 DO 模块的输出。 接通 I128.6,则 IB128=64,监控结果和实际相符。 同时 QB128=100 则 Q128.2=1, Q128.5=1, Q128.6=1, 实际动作情况和程序一致,如图 10 所示。 图 10 状态图表监控 -
西门子 SIMATIC S7-200 SMART 与调试助手之间 Modbus TCP 通信
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART 与调试助手之间 Modbus TCP 通信 STEP7-Micro/WIN SMART 从 V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图 1 Modbus TCP 库指令所示。 指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多 8 个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是 8 个。 图 1 Modbus TCP 库指令 硬件和软件需求及所完成的通信任务 硬件: ① PC (带以太网卡)(IP 地址 192.168.0.1 ;子网掩码: 255.255.255.0) ② S7-200 SMART CPU (固件版本 V2.5) ( IP 地址 192.168.0.20 ;子网掩码: 255.255.255.0) ③ TP 以太网电缆 软件: ① STEP 7 Micro/WIN SMART ( 软件版本 V2.5 ) ② ModScan32 ③ Modbus Slave 所完成的通信任务: ① ModScan32 接收 6 个字节数据: <-- ( S7-200 SMART 侧做服务器响应 ) VW0~VW10 ② Modbus Slave 接收 6 个字节数据: <-- ( S7-200 SMART 侧做客户端写 ) VW20~VW30 ModScan32 (S7 200 SMART 做服务器) 1. 打开 ModScan32 软件 2. 点击“Setup”---“Display Definition”---设定“Point Type”(本例程以保持型寄存器为例)---“Length”为 6 如图 1 所示,设置完成后点击 OK 图 1 Display Definition 3. 点击“Connection”----“Connect” 图 2 建立连接 ① Connect选择Remote TCP/IP Server; ② 设置 IP Address 和端口号与 cpu 中设置的保持一致。 S7-200 SMART 侧编程 1. 打开 STEP 7 Micro/WIN SMART>项目树>指令树>库>Modbus TCP Server(v1.0),调用 MBUS_SERVER,如图 5、图 6 所示。 图 5. Modbus TCP Server 指令库 图 6. MBUS_SERVER 2. 鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图 7 所示。 图 7. 点击库存储器 3. 在库存储区分配对话框中手动输入存储区的起始地址。此实例为 VB5000 开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图 8 所示。 图 8. 库存储区地址分配 4. 编译项目,下载程序。 通信结果如下: 图 9. 测试结果 Modbus Slave (S7 200 SMART 做客户端) 1. 打开 Modbus Slave 软件 2. 点击 "Setup" --- "Slave Definition" --- 设定 "Function”(本例程以保持型寄存器为例)---"Quantity" 为 6---"Display" 为 Signed 如图 10 所示,设置完成后点击 OK 图 10. Slave Definition 3. 点击 "Connection" ----"Connect" 图 11. 建立连接 ① Connect 选择 TCP/IP; ② 设置 TCP/IP Port 为 502 与 cpu 中设置的保持一致,勾选 Ignore Unit ID。 S7-200 SMART 侧编程 1. 打开 STEP 7 Micro/WIN SMART>项目树>指令树>库>Modbus TCP Client(v1.4),调用 MBUS_CLIENT,如图 12 所示。 图 12. MBUS_CLIENT 2. 鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图 13 所示。 图 13. 点击库存储器 3. 在库存储区分配对话框中手动输入存储区的起始地址。此实例为 VB5000 开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图 14 所示。 图 14. 库存储区地址分配 4. 编译项目,下载程序。 通信测试结果 在状态图表中创建变量,VW20-VW30 共 6 个字,赋值后,将 M0.0 置位为 1,监视值如图 15 所示。 图 15. 读取服务器数据 免责声明 本例程仅供参考,程序中的 CPU 版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 -
西门子 SIMATIC S7-200 SMART Modbus TCP 服务器指令
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART Modbus TCP 服务器指令 STEP7-Micro/WIN SMART 从 V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图 1 Modbus TCP 库指令所示。 指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多 8 个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是 8 个。 图 1 Modbus TCP 库指令 实验环境及通信任务 下面以两台 S7-200 SMART 之间进行 Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。具体的实验环境见表 1;通信任务见表 2: 表 1 实验环境 操作系统 WIN7 SP1 专业版 64位 编程软件 STEP7-Micro/WIN SMART V2.4 版本 硬件 SR60: 6ES7288-1SR60-0AA0 固件:V2.4 版本 ST20:6ES7288-1ST20-0AA0 固件:V2.4 版本 交换机:CSM 127 6GK7 277-1AA10-0AA0 表 2 通信任务 SR60 客户端 192.168.0.60 0 读 VB20-VB31 ST20 服务器 192.168.0.20 502 响应 VB0-VB11 硬件 通信角色 IP地址 端口号 读/写 数据区域 SR60 客户端 192.168.0.60 0 读 VB20-VB31 ST20 服务器 192.168.0.20 502 响应 VB0-VB11 服务器侧指令编程 1、系统块中设置服务器的 IP 地址,以确保 IP 地址设置无误。此步骤为可选,如果确定 IP 地址设置无误,可忽略此步骤。设置方法如图 2 所示。 图 2 系统块设置 IP 地址 2、鼠标点击 MAIN 主程序的程序段 1 的编程区域,从库文件夹下找到 Modbus TCP 服务器指令 MBUS_SERVER,鼠标双击,指令出现在程序段 1 中,操作如图 3 所示。 图 3 添加服务器指令 3、填写服务器指令参数,如图 4 所示。 图 4 填写服务器参数 参数及类型 数据类型 说明 Connect IN BOOL =1:服务器接受来自客户端的请求;=0:服务器可以断开已经建立的连接 IP_Port IN WORD 服务器本地端口号 MaxIQ IN WORD 对应数字量输入/输出点(对应 Modbus 地址参数 0xxxx 或者 1xxxx) 可设置范围:0-256, =0 表示禁用对输入和输出的所有读取和写入。 建议将 MaxIQ 值设置为 256。 MaxAI IN WORD 对应模拟量输入参数(对应 Modbus 地址参数 3xxxx) 可设置范围:0-56。 = 0 表示禁用对模拟量输入的读取。 要允许访问所有 CPU 模拟量输入,MaxAI 的建议值如下: 对于 CPU CR40 和 CR60,为 0 对于所有其它 CPU 型号,为 56 MaxHold IN WORD 用于 Modbus 地址 4xxxx 或 4yyyyy 的 V 存储器中的字保持寄存器数。 HoldStart IN Dword 指向 V 存储器中保持寄存器起始位置的指针 Done OUT BOOL TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误 FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。 Error OUT BOOL 出现错误,仅一个周期有效 4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图 5 所示。 图 5 点击库存储器 5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为 VB5000 开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图 6 所示。 图 6 库存储区地址分配 6、编译项目,下载程序。 通信测试结果 由于客户端要读取服务器的数据,在状态图表中修改当前值,如图 7 所示 图 7 状态图表赋值 -
西门子 SIMATIC S7-200 SMART Modbus TCP 客户端指令
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART Modbus TCP 客户端指令 STEP7-Micro/WIN SMART 从 V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图 1 Modbus TCP 库指令所示。 指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多 8 个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是 8 个。 图 1. Modbus TCP 库指令 实验环境及通信任务 下面以两台 S7-200 SMART 之间进行 Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。具体的实验环境见表 1;通信任务见表 2: 表1 实验环境 操作系统 WIN7 SP1 专业版 64位 编程软件 STEP7-Micro/WIN SMART V2.4 版本 硬件 SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本 ST20:6ES7288-1ST20-0AA0 固件:V2.4版本 交换机:CSM 127 6GK7 277-1AA10-0AA0 表 2 通信任务 硬件 通信角色 IP地址 端口号 读/写 数据区域 SR60 客户端 192.168.0.60 0 读 VB20-VB31 ST20 服务器 192.168.0.20 502 响应 VB0-VB11 客户端侧指令编程 1、系统块中设置客户端的IP地址,以确保 IP 地址设置无误。此步骤为可选,如果确定 IP 地址设置无误,可忽略此步骤。设置方法如图 2 所示。 图 2 系统块设置 IP 地址 2、鼠标点击 MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 客户端指令 MBUS_CLIENT,鼠标双击,指令出现在程序段 1 中,操作如图 3 所示。 图 3 添加客户端指令 3、填写客户端指令参数,如图 4 所示。 图 4 填写客户端参数 程序块具体参数详细解释介绍见表 3 参数及类型 数据类型 说明 Req IN BOOL =1:表示向服务器发送 Modbus 请求 Connect IN BOOL =1:尝试与分配的IP地址及端口号建立连接; =0:尝试断开已经建立的连接,忽略 Req 的任何请求 IPAddr1-4 IN BYTE 填写 Modbus TCP 服务器的 IP 地址 IPAddr1-4 为高到低字节 IP_Port IN BYTE 填写 Modbus TCP 服务器的端口号 RW IN BYTE 指定操作模式 =0:读;=1写 Addr IN DWORD 要进行读写的参数的 Modbus 起始地址 Count IN INT 要进行读写的参数数据长度; 数字量输入/输出 Count=1 表示 1 bit,最大 1920 位 对于模拟量输入和保持寄存器,最大 Count 值为 120 字。 DataPtr IN_OUT DWORD 数据寄存器地址指针,指向本地用于读/写操作的数据地址区域的首地址 Done OUT BOOL TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服 务器断开连接;客户端已接收 Modbus 响应;发生错误 FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。 Error OUT BOOL 出现错误,仅一个周期有效 4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图 5 所示。 图 5 点击库存储器 5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为 VB5000 开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图 6 所示。 图6.库存储区地址分配 6、编译项目,下载程序。 通信测试结果 将 M0.0 置位为 1,然后在状态图表中创建变量,VW20-VW30 共 6 个字,监视值如图 7 所示。 图 7 读取服务器数据 关于 Modbus 地址与 CPU 中数据区域地址对应关系说明 S7-200 SMART 做 Modbus TCP 通信,可以支持的功能码及功能描述及所占用的地址区,如表 4 所示。客户端会主动的发送请求,服务器响应。在通信指令填写参数中没有直接填写功能码,而是通过多个参数填写共同确定功能码的。 表 4 功能码概况说明 功能码(十进制) 功能描述 RW Addr Count CPU 地址 01 读数字量输出 位 0 00001-09999 1-1920 位 Q0.0-1151.7 02 读数字量输入 位 0 10001-19999 1-1920 位 I0.0-1151.7 03 读寄存器 字 0 40001-49999 400001-465535 1-120 字 V 区 04 读模拟量输入 字 0 30001-39999 1-120 字 AIW0-AIW110 05 写数字量输出 单个位 1 00001-09999 1 位 Q0.0-Q1151.7 06 写寄存器 单个字 1 40001-49999 400001-465535 1 个字 V 区 15 写数字量输出 多个位 1 00001-09999 1-1920 位 Q0.0-1151.7 16 写寄存器 多个字 1 40001-49999 400001-465535 1-120 字 V 区 举例: 和 Modbus TCP 服务器交换数据参数支持功能码:03,在客户端指令中设置两个参数确定 03 功能码: RW=0:确定读取数据,(筛选出可能会使用的功能码: 01,02,03,04), Addr:40001-49999/400001-465535,表示交换数据为寄存器类型的数据。 -
西门子 SIMATIC S7-200 SMART Modbus TCP 通信
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
S7-200 SMART Modbus TCP 通信 Modbus TCP 是通过工业以太网 TCP/IP 网络传输的 Modbus 通信。S7-200 SMART 采用客户端-服务器方法,Modbus 客户端设备通过该方法发起与 Modbus 服务器设备的 TCP/IP 连接。 建立连接后,客户端向服务器发出请求,服务器将响应客户端的请求。客户端可请求从服务器设备读取部分存储器,或将一定数量的数据写入服务器设备的存储器。如果请求有效,则服务器将响应该请求;如果请求无效,则会回复错误消息。 S7-200 SMART 支持做 Modbus TCP 的客户端或者服务器,可以实现 PLC 之间通信,也可以实现与支持此通信协议的第三方设备通信。通信伙伴数量比较多的时候,可以使用交换机,扩展以太网接口,如图 1 通信功能 图 1. 通信功能 STEP7-Micro/WIN SMART 从 V2.4 版本开始,软件中直接集成 Modbus TCP 库指令。 安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图 2. Modbus TCP 库指令所示。 指令分为客户端和服务器两种,目前指令版本为 V1.0。 图 2. Modbus TCP 库指令 Modbus TCP 客户端: Modbus 客户端指令 MBUS_CLIENT 使用 CPU 的以下资源: 占用主动连接资源。最多有 8 个主动连接资源 连接多个服务器伙伴时,自动生成连接 ID。 Modbus TCP 客户端使用以下程序实体: 1 个子程序 2849 个字节的程序空间 V 存储器的 638 字节模块,用于指令符号 Modbus TCP 服务器: Modbus 服务器指令 MBUS_SERVER 使用 CPU 的以下资源 占用被动连接资源。最多有 8 个被动连接资源 连接多个客户端伙伴时,自动生成连接 ID。 Modbus TCP 服务器使用下列程序实体: 1 个子程序 2969 个字节的程序空间 V 存储器的 445 字节模块,用于指令符号 指令库编程后,必须从 STEP 7-Micro/WIN SMART 的为使用的指令分配库存储区地址。 -
如何判断西门子 SIMATIC S7-200 SMART Modbus TCP 连接是否建立?
leikang posted A PLC and HMI Simplified Chinese article in PLC programming learning
常见问题 1、如何判断 Modbus TCP 连接是否建立? 答:进行 Modbus TCP 通信,需要建立连接, S7-200 SMART CPU 作为 Modbus TCP 客户端时:通过 Modbus TCP Client 指令 MBUS_CLIENT 的符号表中的 mConnected 参数来判断,如图 1 所示 mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接 图 1. mConnected 判断连接状态 S7-200 SMART CPU 作为 Modbus TCP 服务器时:通过 Modbus TCP Server 指令 MBUS_SERVER 的符号表中的 mConnected 参数来判断,如图 2 所示 mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接. 图 2. mConnected 判断连接状态 注意:当 PLC 内存在多个客户端或者多个服务器时,不建议参考该状态点。 2、如何查看错误代码? 答:出现错误时,MBUS_CLIENT 指令输出参数 Done 会为 1,但是,Done 在连接建立完成,连接断开,响应完成时都会出现置位为 1 的情况。 出现错误时,还有 Error 字节会显现出错误代码,仅保留一个周期时间。 综上所述,查看错误代码,可以按照图 3 所示的方法进行。 图 3. 查看错误代码 3、进行 Modbus TCP 通信寄存器类型数据,数据量大超过 120 个字如何处理? 答:如果数据量超过 120 个字,可以进行如下两种方法操作: A、建立多个连接,不同连接之间,可以并行操作,因为占用的通信资源不同; B、建立一个连接,进行多个操作,不同操作之间需要进行轮询,同一时刻只有一个操作在进行。 4、Modbus TCP 通信时,如何访问地址范围大于 49999 的保持寄存器? Modbus 保持寄存器地址在 40001 到 49999 这一范围内。该范围足以满足大多数应用的要求,但有些 Modbus 从站设备将数据映射到地址范围更大的保持寄存器中。 MBUS_CLIENT 指令允许参数 Addr 的附加范围,以支持 400001 至 465536 的保持寄存器地址的扩展范围。例如,要访问保持寄存器 16768,请将 MBUS_CLIENT 的 Addr 参数设置为 416768。 扩展寻址允许访问 Modbus 协议支持的全部 65536 个可能地址。此扩展寻址仅适用于保持寄存器。 5、S7-200 SMART 作为 Modbus TCP 客户端, 服务器为网关模块,连接多个 Modbus RUT 设备时如何区分 Modbus RTU 从站地址能? 答:S7-200 SMART CPU 作为 Modbus TCP 客户端与 Modbus TCP 服务器通信,当尝试访问比 Modbus TCP 服务器更低端的串行子网中的设备,会有报错 "无法建立连接"。如果 Modbus TCP 服务器用于 Modbus RTU 协议的网关,则 MB_UNIT_ID 可用于识别串行网络上连接的从站设备。MB_UNIT_ID 用于将请求转发到正确的 Modbus RTU 从站地址。一些 Modbus TCP 设备可能要求 MB_UNIT_ID 参数在限制范围内。该参数所在位置,如图 4 所示 mModbusUnitID 默认值为 255(16#FF),如果从站设备有多个,可以 S7-200 SMART 和网关模块建立一个连接,在这个连接上通过修改 UnitID 的值进行 UnitID 的轮询。 图 4 mModbusUnitID 6、对于一些服务器不支持写单个数字量输出位(功能码 5)/单个保持寄存器(功能码 6),S7-200 SMART 如何实现写单个位/字。 答:一些 Modbus 服务器设备不支持 Modbus 功能写入单个离散输出位(Modbus 功能 5)或写入单个保持寄存器(Modbus 功能 6)。相反,这些设备只支持多位写入(Modbus 功能 15)或多寄存器写入(Modbus 功能 16)。如果服务器设备不支持单个位/字 Modbus功能,则 MBUS_CLIENT 指令将返回错误代码 1。Modbus 客户端协议允许强制 MBUS_CLIENT 指令使用多个位/字 Modbus 功能,而非使用单个位/字 Modbus 功能。可通过在 Modbus 客户端符号表中查找符号 mModbusForceMulti,并在程序执行 MBUS_CLIENT 之前更改此值,来强制多个位/字指令。将 mModbusForceMulti 设置为 TRUE,可在写入单个位或寄存器时强制使用多个位/字功能。如图 5 所示。 图 5. mModbusForceMulti