C 程序块应用举例 No. of Regs H/L:写参数的数量高/低位,参数数量值需转换为十六进制数。 Data Length:数据字节长度,等于写参数的数量(No. of Points)×2,起始地址时需转换为十六 进制数。 Data0/Data1/…/Data n×2-1:写入起始参数值高 8 位/起始参数值低 8 位/…/写入最后参数值低 8 位。 CRC:CRC 校验字。 多个参数写入成功,应答帧: Slave Adr CMD Start Adr H Start Adr L No. of Regs H No. of Regs L CRC 16#19 16#XX 16#XX 16#02 16#10 16#01 16#00 16#02 Slave Adr:从站设备的通讯地址。 CMD:功能码,16#10 即为写多个参数操作。 Start Adr H/L:被写入参数号起始地址高/低位。 No. of Regs H/L:被写入参数的数量高/低位。 CRC:CRC 校验字。 网络 4:往通信地址为 02 的从站设备写入开始地址为 40325 的 1 个字。 请求帧: CMD Reg Adr H Reg Adr L Preset Preset CRC Slave Adr 16#06 16#01 16#44 Data H Data L 16#XX 16#XX 16#02 16#00 16#64 Slave Adr:从站设备的通讯地址,从站地址值需转换为十六进制数。 CMD:功能码,16#06 即为写单个参数操作。 Reg Adr H/L:需写入参数号起始地址高/低位,起始地址值需转换为十六进制数。 Preset Data H/L:需写入数据高/低字节,写入数据值需转换为十六进制数。 CRC:CRC 校验字。 单个参数写入成功,应答帧: Slave Adr CMD Reg Adr H Reg Adr L Preset Preset CRC 16#01 16#44 Data H Data L 16#XX 16#XX 16#02 16#06 16#00 16#64 -242-
CTMC 运动控制器用户手册 Slave Adr:从站设备的通讯地址。 CMD:功能码,16#06 即为写单个参数操作。 Reg Adr H/L:被写入参数号起始地址高/低位。 Preset Data H/L:被写入数据高/低字节。 CRC:CRC 校验字。 网络 5:往通信地址为 02 的从站设备连续写入开始地址为 40114 的 2 个字。 请求帧: CMD Start Start No. of No. of Data Data 0 Data 1 Data 2 Data 3 CRC Slave Adr Adr H Adr L Regs H Regs L Length 16#02 16#10 16#00 16#71 16#00 16#04 16#00 16#00 16#64 16#00 16#C8 16#XX 16#XX 多个参数写入成功,应答帧: Slave Adr CMD Start Adr H Start Adr L No. of Regs H No. of Regs L CRC 16#02 16#10 16#00 16#71 16#00 16#02 16#XX 16#XX 网络 6:主站读地址为 02 的从站设备的开始地址为 40201 的 30 个字。 请求帧: CMD Start Adr H Start Adr L No. Of Regs H No. Of Regs L CRC Slave Adr 16#02 16#03 16#00 16#C8 16#00 16#1E 16#XX 16#XX -243-
C 程序块应用举例 Slave Adr:从站设备的通讯地址,从站地址值需转换为十六进制数。 CMD:功能码,16#03 即为读功能码操作。 Start Adr H/L:参数起始地址高/低位,起始地址值需转换为十六进制数。 No.of Regs H/L:读参数的数量高/低位,起始地址值需转换为十六进制数。 CRC:CRC 校验字。 读取成功,应答帧: Slave Adr CMD Data Length Data 0 ... Data58 CRC 16#00 ... 16#00 16#XX 16#XX 16#02 16#03 16#3C Slave Adr:从站设备的通讯地址。 CMD:功能码,16#03 即为读操作。 Data Length:数据字节长度,等于读参数的数量(No.of Regs)× 2。 Data0/Data1/…/Data n×2-1:读出起始参数值高 8 位/起始参数值低 8 位/…/读出最后参数值低 8 位。 CRC:CRC 校验字。 8.1.2 CANopen 通信 编程软件 MagicWorks PLC 提供两种 CANopen 通信组态方式,本例介绍了 CPU M228IL 的 CANopen 通信组态方式,步骤如下: 通过硬件组态方式组态 CANopen 通信(使用扩展板 CTH2-CAN-01S2-EB) 1、在项目管理器界面双击“硬件组态”图标,打开硬件组态界面。 2、在硬件组态界面“设备目录”下依次展开“CO-TRUST 200”→“CPU 200”,将 CPU 拖拽到 机架的 0 号槽内。 -244-
CTMC 运动控制器用户手册 3、双击机架上的“CPU200”可进行 CPU 属性配置,勾选“启用 CANopen 主站功能”将在 CPU 后自动生成 CAN 总线。 4、在硬件组态界面“设备目录”下依次展开“CANopen”→“Slave”选择目标从站拖拽至 CAN 总线上。 为伺服类从站组态参数 双击 CAN 总线上的伺服图标,打开其属性配置界面。 -245-
C 程序块应用举例 (1)“CANopen 从站设备”选项卡 在“CANopen 从站配置”对话框的“CANopen 从站设备”选项卡中可以设置节点 ID、错误控制参 数及 EDS 一致性检查,参考如下描述: 节点信息 说明 参数 节点 ID 节点在 CANopen 网络上的地址,用户可修改此节点 ID 名称 产商代码 节点的设备名称,只读参数 设备类型 提供商的 ID 代码,只读参数 产品代码 节点的设备类型代码,只读参数 版本号 节点的产品代码,其中 1 表示 E10 伺服驱动器、2 表示 H1A 伺服驱动器、 3 表示 H2A 伺服驱动器,只读参数 紧急报文 COB-ID 节点 CANopen 功能的修订版本,只读参数 用 来 标 识 CANopen 网 络 中 各 节 点 的 紧 急 报 文 。 节 点 紧 急 报 文 节点守护 COB-ID COB-ID=0x80+节点站号,只读参数 用来标识 CANopen 网络中各节点的节点管理报文,只读参数 错误控制协议:设置错误控制的方式,支持 Heartbeat 协议。参数说明如下: 参数(ms) 说明 监控定时器 从站监控时间,指从站在本监控时间内没有接到主站的心跳即认为掉线 心跳定时器 从站心跳时间,从站按“从站心跳时间”周期发送 Heartbeat 报文给主站 主站监控定时器 主站监控时间,如果主站在“主站监控时间”内没有收到从站的 Heartbeat 报文,主站就认为该从站掉线 选择 EDS 参数一致性检查 您可以选择要不要进行厂商代码、设备类型、产品代码和版本号的一致性检查,默认要检查。如果 这四项有勾选,组态下载至 PLC 后,CANopen 从站会将组态中(EDS 文件中)的这四个参数与从 站固件中相应参数进行对比,如果不一致,会停止 CANopen 通信,同时在 SM 内存给出错误信息。 如果去掉勾选,组态下载后不会进行检查,这样即使组态软件中使用的 EDS 文件版本与固件中不 一致,通信成功但可能会导致读写参数的结果不对。 (2)“PDO 配置”选项卡 -246-
CTMC 运动控制器用户手册 在“CANopen 从站配置”对话框的“PDO 配置”选项卡进行 PDO 配置,请按图示步骤操作: <第 1 步>:在 PDO 配置对话框中通过双击或右键选择“添加”即可将所选 PDO 添加到“已映射 的 PDO”列表中。 <第 2 步>:在“已映射的 PDO”列表中编辑 PDO 属性或配置 PDO。 索引 1400 ~ 1403:接收 PDO 通信参数 索引 1800 ~ 1803:传送 PDO 通信参数 PDO 映射:从站节点中需要和主站进行通信的参数 RxPDO:CANopen 主站去写从站映射在 RxPDO 中的参数 TxPDO:CANopen 主站去读从站映射在 TxPDO 中的参数 “配置”操作 在“已映射的 PDO”中选择一个对象后右键选择“配置”或点击该对话框下方的“配置”按钮即可 打开该项的配置对话框,在该对话框中可以配置该组的参数如下图所示: -247-
C 程序块应用举例 PDO 配置完成后,您可以在 CANopen I/O 映射页面查看所有 PDO 参数的映射地址。 “移除”操作 在“已映射的 PDO”中选择一个对象后右键选择“移除”或点击该对话框下方的“移除”按钮即可 将该项从列表中删除。 “属性”操作 在“已映射的 PDO”中选择一个对象后右键选择“属性”或点击该对话框下方的“属性”按钮即可 打开该项的属性对话框,如下所示: COB ID:CAN 对象标识符地址信息。 事件定时器:设定事件触发定时器的时间。 抑制定时器:设定两个连续调用数据对象的传输服务之间的最小时间间隔。 传送类型:选择 PDO 数据传输类型(参考下表)。 传输类型 触发 PDO 的条件 PDO 传输 (B = both needed,O = one or both) 同步,非循环 SYNC RTR Event 同步,循环 0B B 1~240 O - 241~251 - - Reserved - 同步,在 RTR 之后 252 B B 异步,在 RTR 之后 253 - O -248-
CTMC 运动控制器用户手册 254 - O O 异步,制造商特定事件 255 - O O 异步,设备子协议特定事件 说明: SYNC -接收到 SYNC-object。 RTR -接收到远程帧。 Event -例如数值改变或者定时器中断。 传输类型为 1 到 240 时,该数字代表两个 PDO 之间的 SYNC 对象的数目。 (3)“SDO 配置”选项卡 自动 SDO 配置:在 CANopen 组态中可以编辑 SDO 报文,下载至主站后,在每次初始化时完成固 有的初始化流程后,紧接着就会执行自动 SDO。 在“CANopen 从站配置”对话框的“SDO 配置”选项卡中可以配置 SDO,操作如下: 点击“添加”在弹出的界面中选中要添加的 SDO,点击“确定”即可添加一条 SDO,点击“编辑” 按钮可以对选中的自动 SDO 进行修改,点击“移除”按钮可以删除配置的 SDO。自动 SDO 只能 写参数,不能读参数,自动 SDO 只在从站由预运行状态进入运行状态前对从站写一次。此功能常 用来初始化从站参数。 (4)“CANopen I/O 映射”选项卡 “CANopen 从站配置”对话框的“CANopen I/O 映射”选项卡中将显示已经配置好的 IO/参数及映 射的内存。 -249-
C 程序块应用举例 组态模块类从站 展开设备目录树,打开所选从站 EM277C 或 SM277C 节点下的数字量模块或模拟量模块节点,选 择与你当前实际设备相符的模块型号,使用鼠标双击或拖拽进入模块插槽放下,模块即被添加到当 前从站下。您也可以通过双击设备目录树上的模块节点将模块按顺序插入到当前从站下。如果您在 模块列表中找不到对应的模块型号,您可以选择 Universal Module,它允许用户自己定义模块的 IO。 8.1.3 CANfree 通信 本节将通过一个充电桩具体实例展示实现 CANfree 通信(以太网通信口)的详细操作步骤。 在进行 CAN 通信时,该控制器需调用 CAN 通信指令库(有关该库的介绍和使用说明请参见本文档 B CANfree 通信指令库介绍)来选择 CAN 通信口,完成 CAN 通信报文数据收发和滤波。CPU 在 实现充电桩应用时需连接第三方充电模块(CAN 口)。 -250-
CTMC 运动控制器用户手册 1、示例组件 CANfree 通信的示例组件 组件 功能 编程设备 PG\\PC 安装有 MagicWorks PLC 2.20 及以上版本和 MiCo 客户端软件,对 CTMC 系列 CPU M228ML 进行组态、编程和调试。 控制器 CPU M228ML 充电桩专用控制器 扩展板 一个 CAN 扩展板,可提供一个 CAN 通信口,扩展版规范见章节 4.8.2 CAN 扩展板规范 路由器 将编程设备与 CPU M228ML 连接到同一局域网中 充电模块 带有 CAN 口的第三方充电模块 标准网线 将 CPU M228ML 的 RJ45 网口连接到路由器 2、网络连接 1 - CAN_H 2 - CAN_L 3 - 匹配终端电阻时短接3和4 4 - 接地 第三方充电模块 RJ45 Internet 4321 路由器 MagicWorks PLC+MiCo M228ML 3、操作步骤 步骤 1:系统连接 参考以上网络连接为系统接线: 使用标准网线将编程设备与 CPU M228ML 连接到路由器。 将 CAN 扩展板上的 CAN 口接充电模块。 检查接线,确保无误后接通系统电源。 步骤 2:设置通信 打开 Magicworks PLC 软件,在 MagicWorks PLC 中新建一个工程,将 M228ML PLC 与电脑用 RJ45 网线连接,电脑与 PLC 保持在同一个网段内,打开通信界面,点击设置 PG/PC 接口。 -251-
C 程序块应用举例 选择“CTH300/200Local(TCP/IP)->Realtek PLCe GbE Family Controller”,然后确定。 在通信界面双击刷新,即可出现 CPUM228ML,点击 CPU M228ML 确定即可。 -252-
CTMC 运动控制器用户手册 如果 MagicWorks PLC 未能找到 CPU M228ML,请先检查线缆是否连接良好,然后检查通信参数 的设置,并重复以上步骤。与 M228ML 建立通信之后,将电脑 IP 设置为与 CPU M228ML 的 IP 在 同一网段,但二者 IP 不能相同,电脑 IP 的具体设置过程如下: 步骤 3:配置 PLC 到远程服务器 CPU M228ML 配置到远程服务器后通过 MiCo 软件实现远程通信,本节主要介绍如何将 CPU M228ML 配置到远程服务器,有关 MiCo 软件的使用详情请参考《MiCo 远程监控系统使用手册》。 PLC 建立通信后,打开系统块进行 TCP/IP 端口设置,如需将 PLC 配置到 MiCo 远程监控系统服务 器,则要在此处使能远程控制,如下图红框所示: -253-
C 程序块应用举例 网络设置 PLC 的网络设置可选择自动获取和手动输入两种方式,如选择手动输入,请在此处输入 PLC 设备 在远程服务器中的 IP 地址、端口号、子网掩码、网关和 DNS 服务器信息。确保上位机、PLC 和路 由器处于同一网段内。 远程控制设置 设备名称:添加到 MiCo 远程监控系统服务器的设备的名称,该名称将在 MiCo 客户端显示; 服务器/备用服务器域名:MiCo 远程监控系统服务器域名,现为 mico.co-trust.com; 服务器端口:设备接入服务器的端口号,默认设置为 8888; 公司 ID:设备要加入的 MiCo 远程监控系统服务器设备群组的名称; 认领密码/确认:设置认领设备时需输入的密码,在 MiCo 客户端发出认领申请后需输入并确认此 密码后才能领用相应设备。 下载系统块到 PLC 完成组态后,即可将程序和系统块下载到 PLC 中,下载成功后 PLC 上的 RMC 指示灯点亮即表示 该设备已成功配置到 MiCo 远程监控系统服务器,方便用户远程调用。 -254-
CTMC 运动控制器用户手册 ! 注意 如果各项参数正确的情况下,下载系统块后设备仍然连不上服务器,可尝试先清除 TCP/IP 端口 参数后再重新下载系统块。清除上述 TCP/IP 端口参数的方法为:连续快速拨动 PLC 前面板的运 行开关(拨动开关 RUN - STOP 重复至少三次) 步骤 4:编程调用 CAN 通信指令库 成功连接远程 PLC 后,打开程序块进行编程并调用 CAN 通信指令库(有关该库的指令介绍请参见 本文档 B CANfree 通信指令库介绍)。下面以 CAN2 通道为例,介绍库指令的具体编程。 1、选择 2 号通道(CAN2),波特率 125Kbps,扩展帧模式 1。 2、CAN2 口发送从 VB200 开始(帧 ID 为 16#1808FF83)的 8 字节报文,发送数据大于 8 字节会 导致发送不成功。 -255-
C 程序块应用举例 3、CAN2 口接收报文并放在从 VB2500 开始的 8 个字节中,接收的帧 ID 放在 VD31。 4、对 CAN2 口接收的数据进行滤波,过滤掉除 18 开头的帧 ID 的其他报文。 5、对数据收发操作进行使能和定时。 -256-
CTMC 运动控制器用户手册 保存工程后,选择菜单项“PLC”→“编译”→“下载”,即可将程序下载到 PLC 中。 8.1.4 远程 Mico 通信 CTMC 系列运动控制器支持远程 Mico 通信功能,前提是将远程编程设备与被远程 CPU 接入广域网 内,如下图所示。 -257-
C 程序块应用举例 子网 1 子网 2 MiCo PC 工业以太网 + SG 1M 2M L+ MagicWorks PLC LNI K /AC 1M 2M M 24V DC C PU M2 28I L DC /D C/D C 编程设备 C TM C 21 8-3 AI 35 -0X 60 M228IL 子网 1 中包含远程编程设备(安装有软件 MiCo 和 MagicWorks PLC(V2.18 及以上版本)),该 编程设备可用于对远程 CPU 通信和编程;子网 2 中包含远程编程对象(以 M228IL 为例),通过 EtherNET 通信口与路由器或交换机相连。将子网 1、2 接入广域网,CPU 配置并下载好系统块, 则可以自动登录到合信 MICO 服务器,等待远程编程设备进行操作。 <备注>也可在手机或 Pad 上安装 MiCo,然后打开远程编程端口,即可在同一局域网的 PC 机上用 MagicWorks PLC 对远程 CPU 进行操作。 具体操作步骤如下: 步骤 1:连接设备 参照上图,使用标准网线连接 M228IL、编程设备与路由器。 步骤 2:使能远程控制 在项目管理器界面双击“系统块”进行属性配置。在“系统块”的“TCP/IP 端口”配置界面下勾选 “使能远程控制”(通常为默认勾选),再点击“确定”完成配置。 1、远程功能的设置及 MiCo 端远程编程详细操作请参考《MiCo 远程监控系统手册》,手册下载 地址:http://www.co-trust.com/Download/index.html 2、现场需确认能接入外网,才能和 MiCo 服务器进行通讯。 步骤 3:下载系统块到 PLC -258-
CTMC 运动控制器用户手册 步骤 4:MiCo 端配置 完成以上操作后可在 MiCo 客户端认领设备,将 CPU 加入到我的设备中并启动远程编程。 1、有关设备在 MiCo 端更多详细操作步骤,请参考《MICO 远程监控系统手册》,手册下载地址: http://www.co-trust.com/Download/index.html 2、完成以上步骤后,将 M228IL 的运行开关拨到 RUN,启动远程控制,若 PLC 的 RMC 指示灯亮 起则表示远程通信成功,设备已连接至 MiCo 服务器。 3、若已正确完成以上系列步骤设置且 PLC 的远程指示灯亮起,但在 MiCo 设备群里找不到该 PLC 在线,可用 MagicWorks PLC 直接先对该 PLC 进行“擦除设备远程 ID”操作,再使 PLC 断电重 启。具体操作可参考《MagicWorks PLC 用户手册》。 -259-
C 程序块应用举例 步骤 5:设置通信连接 1)在 MagicWorks PLC 项目管理器界面选择“工具”→“设置 PG/PC 接口”或直接双击“设置 PG/PC 接口”,即可打开如下窗口,选择“CTH300/200 Remote_Mico(TCP/IP)->Realtek Pcle GBE Family Controller”,然后点击“确定”完成配置。 “Realtek Pcle GBE Family Controller”为进行示范的远程设备(PC)的网卡名称,不同网卡,该名 称可能会有所不同。 2)在 MagicWorks PLC 项目管理器界面双击“通信图标”打开通信界面,再双击图标 进行 CPU 搜索,成功连接后,CPU 符号将显示在通信对话框中,如下图所示。 3)在以上通信界面成功搜索到 PLC 后,即表示通信成功,可通过编程设备进行远程编程或监控等 操作。 -260-
CTMC 运动控制器用户手册 8.1.5 UDP_PPI 通信 本节将通过一个具体实例展示实现 UDP_PPI 通信(以太网通信口)的详细操作步骤。 CTMC 系列 CPU M228ML 可以作为主站或从站,使用网络读写指令 UDP_NETR/UDP_NETW 或 NETW/NETR 指令向导与局域网内的其他设备进行 UDP_PPI 通信。同时, HMI 也可以作为 UDP_PPI 主站,以 CTMC 作为从站进行 UDP_PPI 通信。 请参考《MagicWorks PLC 用户手册》查看 UDP 读写指令向导相关使用说明。相关手册和库文件 请访问合信官网,网址:http://www.co-trust.com 1、示例组件 UDP_PPI 通信的示例组件 组件 功能 编程设备 PG\\PC 安装有 MagicWorks PLC 软件(V2.20 以上版本),对 CTMC 系列 CPU M228ML 进行组态、编程和调试 M228ML PLC 本例使用两个 M228ML PLC,一个作为 UDP_PPI 主站,另一个作为 UDP_PPI 从站,它们通过以太网接口进行 UDP_PPI 通讯 ·连接 M228ML PLC 与编程设备 标准网线 ·连接 M228ML PLC(UDP_PPI 主站)与 M228ML PLC(UDP_PPI 从 站) 2、网络连接 使用标准网线连接编程设备与 M228ML PLC,通过编程设备对 UDP_PPI 主站(M228ML PLC)进 行编程: UDP_PPI主站 CTMC系列CPU M228ML 安装有MagicWorksPLC的编程设备 使用标准网线连接 UDP_PPI 主站和 UDP_PPI 从站,UDP_PPI 主站将进行一个写操作,将指定地 址中的数据写入到 UDP_PPI 从站中,然后通过 UDP_PPI 读取从站数据,继而实现 UDP_PPI 通信: -261-
C 程序块应用举例 UDP_PPI通信 CTMC系列CPU M228ML CTMC系列CPU M228ML UDP_PPI主站 UDP_PPI从站 3、操作步骤 步骤 1:连接电缆 使用一条标准网线参考上图连接 PC 与 UDP_PPI 主站(M228ML PLC)。 步骤 2:设置通信 打开 MagicWorks PLC 软件,在 MagicWorks PLC 中新建一个工程,将 M228ML PLC 与电脑用 RJ45 网线连接,电脑与 PLC 保持在同一个网段内,打开通信界面,点击设置 PG/PC 接口。 选择“CTH300/200Local(TCP/IP)->Realtek PLCe GbE Family Controller”,然后确定。 -262-
CTMC 运动控制器用户手册 在通信界面双击刷新,即可出现 CPU M228ML,点击 CPUM228ML 确定即可。 步骤 3:对 UDP_PPI 主站(M228ML)进行编程 以 UDP 网络读写为例,您可以通过以下两种方法之一对 UDP_PPI 主站进行网络读写操作。 1)通过 UDP 网络读写指令 UDP_NETR/UDP_NETW 为 UDP_PPI 主站编程。 UDP_NETR/UDP_NETW 指令的 TABLE 参数表: D A E 0 错误代码 0 IP 地址第 1 个字节 1 IP 地址第 2 个字节 2 IP 地址第 3 个字节 3 IP 地址第 4 个字节 4 端口号高字节 5 -263-
C 程序块应用举例 端口号低字节 6 7 指向远程站指针<I,Q,M,V,DB>(共 4 个字节)第 1 个字节 8 9 指向远程站指针第 2 个字节 10 11 指向远程站指针第 3 个字节 12 13 指向远程站指针第 4 个字节 ... 211 数据长度 数据字节 0 数据字节 1 ... 数据字节 199 D:完成(功能完成),0=未完成、1=完成 A:现用(功能入队),0=非现用、1=现用 E:错误,0=无错、1=错误 错误代码表 代码 说明 1 无措 2 超时错误;远程站不应答 3 接收错误;应答中存在校验、帧或校验和错误 4 脱机错误;重复站址或故障硬件引起的冲突 5 队列溢出错误;8 个以上 UDP_NETR/UDP_NETW 方框被激活 6 非法参数;UDP_NETR/UDP_NETW 表格包含一个非法或无效数值 7 无资源;远程站繁忙(正在上载或下载序列) 8 第 7 层错误;违反应用程序协议 9 信息错误;数据地址错误或数据长度不正确 网络 1:将 UDP_PPI 主站(起始地址:VB312)中的 200 个字节数据写入到 UDP_PPI 从站(IP: 10.1.3.251、起始地址:VB101)中。 -264-
CTMC 运动控制器用户手册 网络 2:将 UDP_PPI 从站(IP:10.1.3.251、起始地址:VB101)中的 200 个字节数据读入到 UDP_PPI 主站(起始地址:VB22)中。 -265-
C 程序块应用举例 2)通过 NETR/NETW-UDP 指令向导为 UDP_PPI 主站编程 点击项目管理器界面的“工具”,选择 NETR/NETW-UDP 指令向导,打开向导对话框随后即可逐 步配置 NETR/NETW-UDP 指令向导。配置完成后,点击“程序块”在 OB1 的网络中调用该 FC, 如下图所示: -266-
CTMC 运动控制器用户手册 3)按照上述方法)完成程序编辑后,将程序编译并下载到 UDP_PPI 主站设备中(必须用 SM0.0 调用)。 步骤 4:UDP_PPI 主站与 UDP_PPI 从站互连通信 1)给 UDP_PPI 主站、从站接通电源。 2)使用标准网线连接 UDP_PPI 主站与从站的 EtherNET 通信口,随后它们即可进行 UDP_PPI 通 信。 4、UDP PPI 通信从站地址映射 UDP_PPI 通信采用普通网络读写,执行读写操作时可组态多种寄存器,从站地址映射为直接映射方 式。 8.1.6 Modbus TCP 通信 本节通过一个具体实例来展示实现 Modbus TCP 通信功能的详细操作步骤。 在 Modbus TCP 通信网络中,CPU 作为从站,通讯独立于整个大循环周期,即收即回;CPU 作为 主站,其收发由用户程序控制。 使用 CTMC 的以太网通信口进行 Modbus TCP 通信时,无需任何配置,CPU 即可作为 Modbus TCP 从站实现 Modbus TCP 通信。MODBUS-TCP 通信默认端口号为 502。当 CTMC 作为 Modbus TCP 主站与其他从站进行通信时,需要使用 Modbus TCP 向导或 Modbus TCP 单条读写指令库配置主 站通信。 请参考《MagicWorks PLC 用户使用手册》查看 TCP 读写指令向导相关使用说明。相关手册和库 文件请访问合信官网,网址:http://www.co-trust.com 示例组件 Modbus TCP 通信的示例组件 -267-
C 程序块应用举例 组件 功能 编程设备 PG\\PC 安装有 MagicWorks PLC 软件(V2.08 以上版本),对 CTMC 可编程控制 CTMC 控模块 器进行组态、编程和调试。 M228IL 本 例 使 用 两 个 M228IL , 一 个 作 为 Modbus_TCP 主 站 , 另 一 个 作 为 标准网线 Modbus_TCP 从站,它们通过以太网接口进行 Modbus TCP 通讯。 ·连接M228IL与编程设备 ·连接M228IL(Modbus_TCP主站)与M228IL(Modbus_TCP从站) 网络连接 使用标准网线连接编程设备与 M228IL,然后在编程设备上使用 COTRUST 提供的 CT_Modbus_TCP 库对 Modbus 主站(M228IL)进行编程: M odBuS_TC P主 站 C T M C 系 列 C P U M 2 2 8 IL 安 装 有 M a g ic W o rk s P L C 的 编 程 设 备 使用标准网线连接 Modbus_TCP 主站和 Modbus_TCP 从站,Modbus_TCP 主站将进行一个写操 作,将指定地址中的数据写入到 Modbus_TCP 从站中,然后,通过 Modbus_TCP 读取从站数据, 继而实现 Modbus TCP 通信: ModBus_TCP通信 CTMC系列CPU M228IL CTMC系列CPU M228IL ModBus_TCP主站 ModBus_TCP从站 操作步骤 步骤 1:连接电缆 使用一条标准网线参考上图连接 PC 与 Modbus_TCP 主站。 步骤 2:设置通信 在 MagicWorks PLC 中新建一个工程,在该工程中添加 M228IL 站点,将 M228IL PLC 与电脑用 RJ45 网线连接,电脑与 PLC 保持在同一个网段内,打开通信界面,点击设置 PG/PC 接口。 -268-
CTMC 运动控制器用户手册 选择“CTH300/200Local(TCP/IP)->Realtek PLCe GbE Family Controller”,然后确定。 在通信界面双击刷新,即可出现 CPU M228IL,点击 CPU M228IL 确定即可。 步骤 3:对 Modbus 主站(M228IL)进行编程 1)在 MagicWorks PLC 的程序块中为 Modbus_TCP 主站编程(可以通过 Modbus TCP 库或 Modbus TCP 向 导 配 置 通 信 , 本 例 使 用 Modbus TCP 库 进 行 编 程 ) , 以 下 指 令 为 “Ct_Mbus_master_tcp_single”库文件中的“MBTCPS_EXE”库指令: -269-
C 程序块应用举例 <备注> 如果您想配置多项读写操作,建议使用 MagicWorks PLC 的 Modbus TCP 向导。具体操作 请访问合信官网参见《MagicWorks PLC 用户手册》。 2)编程完成后,进行编译并将程序下载到 Modbus_TCP 主站设备中。 下表为“MBTCPS_EXE”库指令定义: 符号 变量 注释 数据类型 通信启动位,请使用沿触发 类型 调用 MBTCPS_EXE 的序号,每处调用序号都不能重复, 范围 1~255 RUN IN BOOL 从站地址的第一个字节,例如,从站地址为 192.168.1.202,第一个字节为 192 CmdIndex IN BYTE 从站地址的第二个字节 从站地址的第三个字节 SlaveIP0 IN BYTE 从站地址的第四个字节 读写标志,读 = 0;写 = 1 SlaveIP1 IN BYTE 远程数据地址(如 40001) SlaveIP2 IN BYTE 读写单元数,有效范围:1~120 个字或 1-1920 位 SlaveIP3 IN BYTE 本地数据指针(如\&VB0) IN BYTE 完成位,0=还未完成或未启动;1=操作已完成 RW IN DWORD 错误位,0=无错误,1=有错误 RemoteAddr IN WORD 错误代码,完成位为 1 时有效,详情如下表 IN DWORD 错误位,0=无错误,1=有错误 Count OUT BOOL LocalDataPtr OUT BOOL OUT BYTE Done OUT BOOL Error ErrorCode Error ErrorCode 输出端的错误代码定义如下: 错误代码 说明 0 无错误 1 连接数达到最大值 2 正在建立连接 3 接收超时,从站无响应 4 请求的参数有错误 5 指令没有使能 6 连接正在忙(如同时激活多条 MBTCPS_EXE) -270-
CTMC 运动控制器用户手册 7 应答错误 8 创建连接失败 9 连接已存在 10 连接不存在 11 网线拔出 步骤 4:Modbus TCP 主站与 Modbus TCP 从站互连通信 组态 Modbus TCP 从站时,从站 IP 必须对应于主站编程设定的 IP,如需更改从站 IP,请打开 MagicWorks PLC 中的系统块,修改其中的 IP 地址,如下图所示。另外,PLC 之间进行 ModBus TCP 通信时,从站端口号应为 1024 以上,此为系统默认规定。 步骤 5:调试 按顺序执行以上步骤后,使用标准网线连接 Modbus 主站与从站,然后通过 MagicWorks PLC 软件 的状态表读取 Modbus_TCP 从站以 40001 起始的 120 个数据,若该段内容与 Modbus_TCP 主站 中对应内存中的数据一致,则表示 Modbus TCP 通信成功。 8.1.7 Socket 通信 本小节通过一个具体示例对 socket 通信进行介绍。具体步骤如下: 步骤 1:添加库文件 在项目管理器界面或编程界面选择“文件”--“添加/删除库”,在弹出的窗口中单击“添加”浏览 至库文件存储位置: -271-
C 程序块应用举例 找到库文件“ct_socket_v1_1.ctmwl”如下图所示,点击“打开”按钮,再点击“确定”。 安装成功后,在程序块界面目录树的“库”下可以看到新增加的“ct_socket(v1.1)”: 步骤 2:对 CPU 进行编程 1)用 SOCK_Open 指令创建一个 TCP 连接 点击 Magicworks PLC 程序块,从 socket 库调用 SOCK_Open,进行编程。 -272-
CTMC 运动控制器用户手册 DestIP0:对应的上位机服务器的 IP 第一段(如 192) DestIP1:对应的上位机服务器的 IP 第二段(如 168) DestIP2:对应的上位机服务器的 IP 第三段(如 1) DestIP3:对应的上位机服务器的 IP 第四段(如 100) LPort:本地 CPU 端口号 RPort:上位机的端口号 2)、使用发送/接收指令,设置发送/接收缓存区间。 3)、停止连接指令,在断线重连时需要执行一次。 <备注> 指令的具体使用可通过 C 以太网“ct_socket”通信库指令介绍进行详细了解。 步骤 4:PLC 与测试工具的使用 -273-
C 程序块应用举例 1.点击“创建服务器”,勾选指定 IP。 指定 IP:对应 SOCK_Open 指令里面设置的 IP 本机端口:对应 SOCK_Open 指令里面设置的 RPort 2、点击-启动服务器 连接成功后上位机显示有一个绿色的三角形 3、监控发送数据用 ASCLL 的格式来查看 socket 使用注意 1.用测试工具时电脑 IP 必须和服务器 IP 一致。 2.PLC 网段必须和电脑的网段一样 3.服务器的端口不能是 502,可以和本地端口一样可以是 20000,必须大于 0, 范围 1 到 65535 4.可以在连接外网的情况下连接服务器,只支持 IPV4 ,IPV4 其实是互联网通信协议第四版,不仅 仅适用于局域网,广域网一样适用。可以连接公网上的任一支持 SOCKET 的 IPV4 的设备。 5.必须先存在服务器才可以开 SOCK—open。 6.打开测试软件会跳出一个防火墙询问网络的点击同意,否则建立服务器会失败。 7.在发送和接收上 PLC 只支持国际码—GB2312-80 8.关于 UDP 和 TCP 客户端的区别:UDP 只管发,数据小,速度快 -274-
CTMC 运动控制器用户手册 客户端可 1 对 1,服务器 1 对多 9.在通讯过程中若出现干扰或其他原因导致的通讯中断,需注意自动重连服务器,重连判断条件(错 误码不等于 0、连接号等于 255)如下图、通讯断后重连需加延时、延时 3 秒钟左右,若时间太短 也可能导致连接不上。 8.2 西门子 S7 协议主从站通信举例 CTMC 系列 CPU 支持西门子 S7 协议主从站功能,西门子 PLC 或屏或支持 S7 协议的上位机软件 作为主站,CTMC 系列 CPU M228IL 作为从站,即可进行 S7 协议通信,最多支持 8 个连接(不分 主从)。 本节将通过具体实例来展示 CTMC 系列 CPU 与西门子触摸屏 PLC 及第三方支持西门子 S7 协议的 触摸屏与上位机通讯的参数配置操作。 8.2.1 示例组件 示例组件 功能 组件 安装有 STEP 7-MicroWin SMART 软件,对 CTMC 系列 CPU 进行组 态、编程和调试。 编程设备 作为 S7 协议从站,与 S7 协议主站进行通信 作为 S7 协议主站,与 S7 协议从站进行通信 CTMC 系列 CPU 软件版本 V6.55,作为 S7 协议主站,与 S7 协议从站进行通信 西门子 SMART200 PLC 组态王 -275-
C 程序块应用举例 昆仑通态触摸屏 作为 S7 协议主站,与 S7 协议从站进行通信 西门子触摸屏 SMART700IEV3,作为 S7 协议主站,与 S7 协议从站进行通信 威纶通触摸屏 作为 S7 协议主站,与 S7 协议从站进行通信 8.2.2 网络架构 下图为 CTMC 系列 CPU 配合西门子等设备或上位机软件进行 S7 协议通信的典型连接: 8.2.3 西门子产品与 CTMC 系列 CPU 的网口通讯 示例 1:SMART200 与 CTMC 系列 CPU 的 S7 协议通信 本例以西门子 SMART200 为主站,CTMC 系列 CPU 做从站,进行 S7 协议的通信。 <备注>:西门子触摸屏也可以作为主站与 CTMC 系列 CPU 进行 S7 协议的通信。 1、SMART200 PLC 与 STEP 7-MicroWin SMART 编程软件通信设置 打开 STEP 7-MicroWin SMART 软件,将 SMART200 PLC 与电脑用 RJ45 网线连接(电脑与 PLC 保持在同一个网段内),打开 SMART 软件设置界面,选择电脑对应的本地网卡,然后点击查找 CPU 即可找到 PLC。 -276-
CTMC 运动控制器用户手册 2、SMART200PLC 做主站,CTMC 系列 CPU 做从站程序设置 主站配置 1)建立 GET/PUT 向导 在 STEP 7-MicroWin SMART 软件中打开 GET/PUT 向导,并进行如下设置: -277-
C 程序块应用举例 -278-
CTMC 运动控制器用户手册 2)在 SMART 软件的程序里面用 sm0.0 调用向导生成的块 -279-
C 程序块应用举例 从站配置 在 CTMC 系列 CPU 的系统块中配置好 IP 地址即可,操作示意如下: -280-
CTMC 运动控制器用户手册 通过以上步骤将 S7 协议主从站设置完成后,即可实现西门子 SMART200 与 CTMC 系列 CPU 进行 的 S7 协议通信。 示例 2:CTMC 系列 CPU 与 SMART200 的 S7 协议通信 CTMC 系列 CPU 支持西门子 S7 协议,CTMC 系列 CPU M228ML 可直接作为主站,本节将通过具 体实例来展示主站 M228ML PLC 与从站西门子 SMART200 PLC 通讯的参数配置操作 1、示例组件 示例组件 功能 组件 安装有 Magicworks PLC 软件,对 CTMC 系列 CPU M228ML 进行组态、编程和调试。 编程设备 作为 S7 协议主站,与 S7 协议从站进行通信 作为 S7 协议从站,与 S7 协议主站进行通信 M228ML CPU ·连接 M228ML PLC 与编程设备 西门子 SMART200 PLC ·连接 M228ML PLC(S7 主站)与西门子 SMART200 PLC(S7 从站) 标准网线 2、网络连接 使用标准网线连接编程设备与 M228ML PLC,通过编程设备对 S7 主站(M228ML PLC)进行编程: -281-
C 程序块应用举例 使用标准网线连接 S7 主站和 S7 从站,S7 主站将进行一个写操作,将指定地址中的数据写入到 S7 从站中,然后通过 S7 从站读取相应地址中的数据,继而实现 S7 通信: 1、主站 M228ML PLC 与 Magicworks PLC 编程软件通信设置 打开 Magicworks PLC 软件,将 M228ML PLC 与电脑用 RJ45 网线连接,电脑与 PLC 保持在同一 个网段内,打开通信界面,点击设置 PG/PC 接口。 选择“CTH300/200Local(TCP/IP)->Realtek PLCe GbE Family Controller”,然后确定。 -282-
CTMC 运动控制器用户手册 在通信界面双击刷新,即可出现 CPU M228ML,点击 CPU M228ML 确定即可。 从站配置 打开 STEP7-MicroWin SMART,点击项目树下的“系统快”,在系统块中设置从站 IP,IP 地址与 主站对应好即可。 -283-
C 程序块应用举例 200 2 对 S7 主站(CPU M228ML)进行编程 0 以 S7 网络读写为例,您可以通过以下方法对 S7 主站进行网络读写操作。 1 通过 S7 网络读写指令 S7_read/S7_write 为 S7 主站编程。 2 S7_read/S7_write 指令的 TABLE 参数表: 3 4 D A E 0 错误代码 5 远程站 IP 第一个字节 6 远程站 IP 第二个字节 7 远程站 IP 第三个字节 8 远程站 IP 第四个字节 9 保留(必须设为 0) 10 保留(必须设为 0) 11 指向远程站目标区域指针的第 1 个字节 12 指向远程站目标区域指针的第 2 个字节 13 指向远程站目标区域指针的第 3 个字节 14 指向远程站目标区域指针的第 4 个字节 15 长度(不大于 200) 指向本地站目标区域指针的第 1 个字节 指向本地站目标区域指针的第 2 个字节 指向本地站目标区域指针的第 3 个字节 指向本地站目标区域指针的第 4 个字节 D:完成位,0 未完成,1 完成 A:激活位,指令正在执行中为 1,未执行为 0 E:位,0 无错,1 出错 -284-
CTMC 运动控制器用户手册 错误代码表 代码 说明 0 无错 1 超时错误:远程站不应答 2 保留 3 脱机错误:重复站址或故障硬件引起的冲突 4 队列溢出错误:8 个 S7_write/S7_read 方框被激活 5 接收错误:收到的回复有错误 6 非法参数:S7_write/S7_read 表格包含一个非法或无效数值 7 保留 8 保留 9 信息错误:数据长度不正确 10 连接数超过 8 个 11 网线没插 网络 1:根据 S7_read/S7_write 指令的 TABLE 参数表将远程站的 IP 设为 192.168.1.200,远程站 目标区域指针设为\&VB0(一定要用指针),读的长度设置为 100 字节,本地站目标区域指针设为 \&VB100(一定要用指针),配置好参数表。 -285-
C 程序块应用举例 网络 2:根据 S7_read/S7_write 指令的 TABLE 参数表,配置好参数表。将远程站的 IP 设为 192.168.1.200,远程站目标区域指针设为\&VB0(一定要用指针),写的长度设置为 100 字节,本地 站目标区域指针设为\&VB100(一定要用指针)。 -286-
CTMC 运动控制器用户手册 网络 3:调用 S7_read/S7_write 指令,通过参数表的参数进行读写数据,指令的 TABLE 参数务必 使用指针。 示例 3:西门子触摸屏与 CTMC 系列 CPU 的 S7 协议通信 本例以西门子触摸屏为主站,CTMC 系列 CPU 做从站,进行 S7 协议的通信。 主站配置 -287-
C 程序块应用举例 从站配置 在 CTMC 系列 CPU 的系统块中配置好 IP 地址即可: 示例 4:S7-1200/1500 与 CTMC 系列 PLC 的的 S7 协议通信 S7-1200/1500 CPU 与 CTMC 系列 PLC 的的 S7 协议通信(S7-1200/1500 作为主站),合信 CTMC 系列 PLC 支持西门子 S7 协议从站功能,西门子 PLC 或屏或支持 S7 协议的上位机软件作为主站 CTMC 系列 CPU 作为从站,即可进行 S7 协议通信,最多支持 8 个连接(不分主从),其中合信 CPU 只做从站。 硬件和软件需求及所完成的通信任务 S7-1200 CPU 硬件版本 V2.0 或更高 CPU M228IL(固件版本 2.46 以上) 硬件 PC(带以太网卡) TP 以太网电缆 工业交换机 软件 TIA portal V15 MagicWorks PLC V2.19 -288-
CTMC 运动控制器用户手册 所完成的通信任务: S7-1200 将通信数据区 DB1 中的 100 个字节发送到 M228IL 的 VB 数据区,S7-1200 读取 M228IL 中的 VB 数据区存储到 S7-1200 的数据区 DB1 数据区中。 S7-1200 M 区中的 MB0-MB9 连续 10 个字节发送到 H226XM 的 M 区中 MB0-MB9,S7-1200 读取 M228IL 区中的 MB10-MB19 连续 10 个字节到 S7-1200 的 M 区中 MB10-MB19。 S7-1200 主站的配置编程 步骤 1:使用 TIA portal V15 软件新建一个项目并完成硬件配置,网络组态 1)新建子网 PN/IE_1,修改 IP 地址与 PC 和 M228IL 所在同一个网段 V 2)将“防护与安全”>“连接机制”>“允许来自远程对象的 PUT/GET 通信访问”勾选 3)在“项目树”>“设备组态”>“网络视图”下,按如下图片中 1~6 的步骤建立 S7 连接 -289-
C 程序块应用举例 1、 选中“网络视图” 2、 选中“连接” 3、 CPU 右键选中“添加新连接” 4、 选中“S7 连接” 5、 点击“未指定” 6、 点击“添加”,“关闭”窗口 4)按如下图片中的步骤填写连接参数 -290-
CTMC 运动控制器用户手册 从站 IP 地址 5)在“地址详细信息”中设置通信伙伴的 TSAP 地址 6)在 CTMC 系列 CPU 的系统块中配置好 IP 地址即可,操作示意如下 -291-




