摘要 : S7-200 系列 PLC 与监控计算机通信实现的研究 Research of communication between S7-200 series PLC and supervision computer 周晓平姜建芳苏少钰陈迅 Zhou,Xiaoping Jiang,Jianfang Su,Shaoyu Chen,Xun 针对控制系统中上位机与 S7-200 系列 PLC 通信的实际问题, 总结了几种监控计 算机与 S7-200 系列 PLC 的通信方法, 这几种方法在不同的控制系统中能较好解决监控计算 机与 S7-200 系列 PLC 通信问题 关键词 : PLC; 通信 ;WINCC 组态软件 ;OPC;Profibus 现场总线 ;PPI 中图分类号 : TP273 文献标识码 :B Abstract: According to the communication problem between upper-computer and S7-200 series PLC, this paper summarizes several means to communicate supervision computer to S7-200 PLC. These means can resolve the communication problems in different control systems. Key words: PLC;Communication;WinCC configuration software;ole Process Control; Profibus Field Bus;Point-to-Point Interface 1 引言西门子工控产品在工控领域应用市场中有较高的占有率,S7-200 系列 PLC 是西门子 SIMATIC PLC 家族中的成员之一, 在西门子工控领域应用中占有重要地位 S7-200 系列 PLC 体积小, 软硬件功能强大, 系统配置方便, 由它组成的系统可以与强大的 Profibus 现场总线 相连接 它一推向市场就在各行各业得到了广泛应用 但是在实际工程应用中遇到了监控计算机与 S7-200 系列 PLC 通信问题 由于西门子公司 S7-200 系列 PLC 比监控组态软件 WinCC 推出晚, 因此 WinCC 中没有集成 S7-200 系列 PLC 的通信驱动程序 ;S7-200 系列 PLC 的通信协议也不公开, 应用第三方软件编制监控程序也有问题 这些问题给 S7-200 系列 PLC 的应用带来了一定的限制, 为了解决这个实际工程问题, 作者做了一些研究, 本文就 S7-200 系列 PLC 与监控计算机通信问题研究结果展开讨论 2 S7-200 系列 PLC 监控的主要方法在大多数控制系统中, 仅仅是实现控制是不够的, 在许多情况下也需要组态监控界面对系统进行监控 通过监控可以增加人机交互的能力, 使操作人员实时地监控系统工作情况并使系统操作变得方便 对 S7-200 系列 PLC 组成的控制系统进行监控一般有三种方法 : 组态软件监控 第三方软件编制的监控软件监控 触摸屏监控 用组态软件 WinCC 实现监控, 功能强大, 灵活性好, 可靠性高 但软件价格高, 并需要解决 WinCC 与 S7-200 系列 PLC 的通信问题 在复杂控制系统中可以采用此方法 用第三方软件编制的监控软件实现监控, 灵活性好, 系统投资低, 能适用于各种系统 但开发系统工作量大 可靠性难保证, 对技术人员的经验和技术水平的要求高, 还必须购买通信协议软件 在系统资金投资有限, 技术人员水平较高的情况下可以采用此方法 触摸屏进行监控, 可靠性高, 监控实现容易, 触摸屏与 PLC 之间的通信问题生产厂商已处理好, 用户不用考虑通信问题, 可以大大缩短工程周期 但灵活性一般, 功能有限, 不能满足复杂控制系统的监控要求, 而且价格高 在系统可靠性要求高 工期短的情况下可以采用此方法 3 WinCC 组态软件与 S7-200 系列 PLC 的通信 SIMATIC WinCC 采用了最新的 32 位技术的过程监控软件, 具有良好的开放性和灵活性 无论是单用户系统, 还是冗余多服务器 / 多用户系统,WinCC 均是较好选择 通过 ActiveX, OPC,SQL 等标准接口,WinCC 可以方便地与其它软件进行通信 WinCC 与 S7-200 系列
PLC 的通信, 可以采用 PPI 和 Profibus 两种通信协议之一进行 1 WinCC 与 S7-200 系列 PLC 通过 Profibus 协议进行通信的实现 (1) 软硬件要求 : * PC 机,Windows 98 操作系统 ; * S7-200 系列 PLC; * CP5412 板卡或者其他同类板卡, 例如 :CP5611,CP5613; * EM277 Profibus DP 模块 ; * Profibus 电缆及接头 ; * 安装 CP5412 板卡的驱动 ; * 安装 WinCC 4.0 或以上版本 ; * 安装 COM Profibus 软件 硬件连接如图 1 监控计算机 :DP 主站, 地址为 1 WinCC PLC 系统 :DP 从站, 地址为 3 SIMATIC NET 软件 CP 5412 卡 EM277 DP 模块 S7-224 PLC DP Profibus-DP 总线 DP 图 1:WinCC 与 S7-200 系列 PLC 通信实现硬件连接 (2) 组态打开 SIMATIC NET\COM Profibus, 新加一个组态, 主站为 SOFTNET-DP, 从站是 EM277 Profibus-DP 主站的地址选择从 1 到 126 从站的地址选择从 3 到 99, 与 EM277 的地址一致 然后用该软件对从站进行配置 : 打开从站属性, 在 Configure 选项中, 选择 8bytes in/8bytes out( 可根据实际需要选定 ) 在 Parameterize 中可以选择偏移地址, 地址对应于 S7-200 系列 PLC 的数据区 ( 即 V 区 ), 默认为 0, 即从 VB0 开始 组态完成后, 导出 (Export)NCM 文件, 生成 *.txt 和 *.ldb 文件 (3) 设置 PG/PC interface 在 Access Point of the Application 中选择 CP_L2_1, 在 Interface Parameter Assignment 选择 CP5412A2(Profibus) 在属性里的激活 DP 协议, 并在 DP-Database 参数中输入 *.ldb 文件的完全路径 设置完成后可以诊断硬件配置是否正确 通信是否成功 (4)WinCC 的设置 在 WinCC 变量管理器中添加一个新的驱动程序, 新的驱动程序选择 PROFIBUS DP.CHN, 选择 CP5412(A2)Board 1, 在 System Parameters 设定参数 CP5412(A2)board 参数为 1, 表示板卡的编号 ;Config 参数为组态时生成的 *.txt 文件的完全路径 ;Watchdog time 参数为 0 新建一个连接, 从站地址与 EM277 的地址一致 (5) 建立变量 WinCC 中的变量类型有 In 和 Out In 和 Out 是相对于主站来说的, 即 In 表示 WinCC 从 S7-200 系列 PLC 读入数据,Out 表示 WinCC 向 S7-200 系列 PLC 写出数据 In 和 Out 与数据存储区 V 区对应 在该例中,Out 与 PLC 中数据存储区的 VB0~VB7 对应,In 与 PLC
中的存储区的 VB8~VB15 对应 (6) 优缺点 优点 : 该方法数据传输速度快, 易扩展, 实时性好 缺点 : 传送数据区域有限 ( 最大 64 字节 ), 在 PLC 中也必须进行相应的处理, 且硬件成本高, 需要的 CP5412 EM277 Profibus-DP Profibus 总线等硬件, 还需要 Com Profibus 软件 应用场合 : 适用于在要求高 速数据通信和实时性要求高的系统 2 WinCC 与 S7-200 系列 PLC 通过 PPI 协议进行通信的实现 PPI 协议是西门子 S7-200 系列 PLC 常用通信协议, 但 WinCC 中没有集成该协议, 即 WinCC 不能直接监控 S7-200 系列 PLC 组成的控制系统 S7-200 OPC Server 是西门子公司 推出的专为解决上位机监控 S7-200 系列 PLC 控制系统的接口软件 因此,WinCC 可以通过 该软件与 S7-200 系列 PLC 很方便的建立通信 (1) 软硬件要求 : * PC 机,Windows 98 操作系统 ; * S7-200 系列 PLC * PC/PPI 电缆 * 安装 S7-200 OPC Server 软件 * 安装 WinCC 4.0 软件 (2) 连接 : 在控制面板中设定 PG/PC 接口参数 在 Access Point of the Application 中选择 Computing, Interface 参数选择 PC/PPI Cable 在 WinCC 变量管理器中添加一个新的驱动程序, 新的驱动程序选择 OPC.CHN, 在 OPC GROUP 中新建一个连接, 打开属性, 选择 OPC Group Setting,OPC 服务器名称为 OPCServer.MicroComputing 然后在新添加的连接中新建变量, 变量的 Item Name 与 S7-200 系列 PLC 中用于监控的变量名对应 例如 :Item Name 为 M0.0 (3) 优缺点 优点 : 该方法连接简单 硬件投资少 可以读写 S7-200 系列 PLC 中所有存储区域 缺 点 : 通信速度比较慢 需要 OPC 软件及相应授权 系统扩展不方便 应用场合 : 用于低速 实时性要求不高 系统投资资金有限的系统 另外, 也可以通过其他公司的 OPC 软件进行通信, 例如用开普的 KEPServerEx 作为 OPC 服务器, 用 WinCC 作为 OPC 客户端来读写 S7-200 系列 PLC 内部数据区 实现与上述第二 种方法类似, 不同的是必须在 OPC 服务器中建立标签与 S7-200 系列 PLC 中存储地址对应 在复杂系统中, 如果系统中同时有 S7-200 系列 PLC 和 S7-300 系列 PLC 存在,S7-200 系列 PLC 一般作为 S7-300 系列 PLC 的从站挂到 Profibus 总线上,WinCC 通过 S7-300 系列 PLC 对 S7-200 系列 PLC 进行监控 4 第三方软件与 PLC 的连接有些系统具有特殊性, 没有现成的通用软件用于进行数据处理和系统监控, 这就需要用 户用第三方软件开发平台开发满足系统要求的监控软件 这样做既可以满足系统要求, 又可以节约系统投资 但对软件开发人员的经验和技术要求较高 第三方软件开发平台开发的监控软件与 S7-200 系列 PLC 通信使用 PPI 协议的接口软件有 :Prodave MicroComputing OPC 第三方软件开发平台开发的监控软件与 S7-200 系列 PLC 通过自由口进行通信, 协议自定的话, 开发的监控软件可以调用 MSComm 控件实现两者的通信 1 用 Prodave 软件包实现通信连接 Prodave 是西门子公司推出的专门用于西门子 PLC 产品 (S7-200 300 400 系列 PLC)
与 PC/PG 进行数据交换处理的软件包 Prodave 在 *.DLL 或 *.LIB 文件中集成了数据交换的 函数 在自行开发的监控软件中可以方便地调用该软件中的各种函数 主要函数有 : (1)load_tool PC 机与 PLC 系统初始化链接 ; (2)unload_tool 断开 PC 机与 PLC 系统链接 ; (3) 以及读写 PLC 内部存储区的函数 监控软件通过读写函数可以方便监控 PLC 控制系统 2 用 MicroComputing 软件实现通信连接 安装 MicroComputing 后, 在 VB 或 Delphi 中可以直接插入控件 可插入的控件主要有 : Data controls Edit controls Button controls Label controls Slider control Data controls 的主要功能是把以上剩余的四个控件与 S7-200 系列 PLC 相连接 设置事件 触发条件以及设定 S7-200 系列 PLC 地址等 而 Edit controls Button controls Label controls Slider control 可以与 S7-200 系列 PLC 存储资源直接对应 第三方软件可以直接调用上列控 件对 PLC 进行监控, 也可以通过函数对 S7-200 系列 PLC 进行读写操作 3 用 OPC Server 软件实现通信连接 安装 S7-200 OPC Server 软件后, 在操作系统中将增加一个 OPC 服务器, 服务器的名 字是 OPCServer.Computing VB 或 Delphi 中可编写 OPC 客户端程序与 OPC 服务器通信 以下给出在 VB 开发环境下编写 OPC 客户端程序的过程 : 首先在 VB 开发环境中的 Project\References 中添加 OPC Automation 2.0, 然后编写连接 OPC Server 添加组 添加条 目 读写数据的程序 使用到的函数如下 : connect 函数 : 与 OPC Server 建立连接 ; OPCGroups.Add 函数 : 添加组 ; OPCITems.Additems 函数 : 添加条目 ; SyncRead 函数 : 同步读 ; SyncWrite 函数 : 同步写 OPC 服务器名为 OPCServer.Computing, 条目名称与 S7-200 系列 PLC 中用于监控 的变量名对应 第三方软件通过 OPC 或 MicroComputing 获取 S7-200 系列 PLC 数据的结构图如下 第三方软件 Button control Edit control OPC Client: 第三方软件实现 Label control Slider control OPC Server Micro computing Data control 通信处理卡或 PC/PPI 电缆 S7-200 PLC 图 2: 用 OPC 或 Micro computing 获取 PLC 数据的结构图
4 用自由口实现通信连接在 VB 或 Delphi 下插入 MSComm 控件, 按照自定协议通过串口来收发数据, 并对数据进行处理并实现监控 在 PLC 中也必须编写通信程序, 流程如下 主程序 通信中断子程序 通信初始化 收到字符 开中断 通信超时 是 否 否 满一帧 是 命令帧分析 命令帧正确 是 发送正确响应帧 否 给出错误代码 发送错误响应帧 5 优缺点总结 : 图 3: 自由口通信流程图 清除缓冲区 用 Prodave, 实现简单, 灵活性较好, 可以直接调用 Prodave 的函数对 S7-200 系列 PLC 内部存储区进行读写, 并能满足大规模数据的传输, 调试简单, 很适合在工程中应用 但需 要购买软件, 编程较复杂 用 MicroComputing, 使用方便, 编程以控件实现, 编写简单 但灵活性差, 并需要购 买软件和授权 用 OPC 实现通信, 编程灵活也较简单, 调试简单, 由于 OPC 协议是通用协议, 得到 了许多公司支持, 通用性好 但需要购买软件及授权 用自由口通信实现, 通信协议自己制定, 灵活性好, 扩展了使用范围, 不需购买专门 软件 但编程复杂, PLC 中要编写复杂的程序, 使用了大量 PLC 的资源 VB 或 Delphi 中 用 MSComm 控件对串口进行读写, 程序复杂, 实时性较差 5 结束语以上面给出了 6 种监控计算机与 S7-200 系列 PLC 通信实现方法, 它们各有优缺点, 适用于不同情况下的监控控制系统 研究证明, 以上 6 种方法对不同要求的系统能较好的实 现监控计算机与 S7-200 系列 PLC 通信, 对工程实践有较高的参考价值 参考文献 : [1] SIMATIC MicroComputing User Manual.SIEMENS. [2] 廖常初主编.PLC 编程及应用. 北京. 机械工业出版社.2002
所投栏目 : 控制系统 资金资助 : 自筹作者简介 : 姜建芳 ; 男 ;1954 年 12 月出生 ; 汉 ; 山西人 ; 硕士 ; 南京理工大学自动化系教授 ; 从事控制理论与控制工程方面的研究 Author:Jiang,Jianfang;Male;12th,1954;Han;Shanxi province;master;professor of Automation Department, Nanjing University of Science and Technology;Research on Control Theory and Control Engineering 单位 : 南京理工大学自动化系 Department:Automation Department,Nanjing University of Science and Technology Nanjing,210094 联系地址 : 南京理工大学自动化系 1002 教研室,210094 联系电话 :025-4315872 分机 8,025-4316413 E-mail: jiang_jian_fang@sohu.com,bottleping@sohu.com 联系人 : 姜建芳, 周晓平 注 : 修改稿, 版面费 500( 要发票, 不要稿酬 )+ 审稿费 50 已寄, 请查收 2003-6-22