资源描述:
第 3 5卷第 5期 2 0 1 1年 9 月 冶 金自 动 化 Me t a l l u r g i c a l I n d us t r y Au t o ma t i o n V0 1 . 35 No. 5 Se p. 2 011 经验 交流 利用以太 网实现西 门子 P L C与二级计算机 的通信 宋 明 , 王锬 马鞍 山钢铁股份有 限公 司 马钢 自动化工程公司 , 安徽 马鞍山 2 4 3 0 0 0 摘要 归纳基于以太网的西门子 P L C与二级计算机通信的几种方案。在介绍每种方案的基本原理后, 针对常用 编程工具在实现过程中可能遇到的问题给出解决办法, 并结合马鞍山钢铁股份有限公司的生产实践比较了每 种方案 的优缺点 和适用场合 。实 际应用表 明这些方法简便 实用 , 经过 长时 间的运行 , 证 明它们可 以满足 工业 生 产的要求 , 对类似项目有一定的借鉴作用。 关键词 Wi n C C ; S A P I - s 7编程接 口; S e n d / R e c e i v e编程接 口; S o c k e t ; O P C接 口 中图分类号 T P 3 9 3 . 4 文献标志码 B 文章编号 1 0 0 0 - 7 0 5 9 2 0 1 1 0 5 - 0 0 6 5 - 0 4 I mpl e me nt a t i o n o f c o mmun i c a t i o n b e t we e n S i e m e n s PLC a nd l e v e l t wo c o mp ut e r wi t h Et he r n e t S ONG Mi n g, W ANG T a n Ma s t e e l A u t o m a t i o n E n g i n e e r i n g C o mp a n y o f Ma a n s h a n I r o n S t e e l C o . ,L t d . , Ma a n s h a n 2 4 3 0 0 0 , C h i n a Ab s t r a c t S e v e r a l s c h e me s o f c o mmu n i c a t i o n b e t we e n S i e me n s PL C a n d l e v e l t wo c o mpu t e r b a s e d o n Et he r ne t a r e s umma riz e d,a n d ba s i c p rin c i p l e o f e a c h c o mmu n i c a t i o n s c h e me i s i n t r o d u c e d. S o l u t i o n s o f p r o b l e ms wh a t c o mmo n pr o g r a mmi n g t o o l s c o me a c r o s s i n i mp l e me n t i n g p r o c e s s o f c o mmun i c a t i o n s c h e me a r e g i v e n . Ad v a n t a g e s , we a k n e s s e s a n d s u i t a b l e a p p l i c a t i o n o c c a s i o n s o f a l l s c h e me s a r e c o m p a r e d, c o mb i n i n g wi t h Ma s t e e l ’ S p r o d u c t i o n pr a c t i c e .Ap pl i c a t i o n s ho ws t h a t t h e s e s c h e me s a r e s i mp l e a n d p r a c t i c a 1 .Lo n g t i me r u n n i n g pr o v e s t h a t t he y c a n me e t t he r e q u i r e me n t o f i n d us t ria l p r o d u c t i o n. F o r s i mi l a r p r o j e c t s , t h e y h a v e r e f e r e n c e r o l e . Ke y wo r ds W i n CC; S AP I S 7 pr o gra mmi n g i n t e rfa c e;S e n d/ Re c e i v e p r o g r a mmi n g i n t e r f a c e; S o c k e t ; 0PC i n t e r f a c e 随着 自动化技术的不断发展 以及工业控制 自 动化体系结构 的逐渐完善 , 大部分控制 系统都 具 备 了从 0级到 2级 的三级 系统结构 。在这种背景 下 , 各级系统之间数据通信的重要性就凸显出来。 马鞍山钢铁股份有限公司近年来新建 和改造 的各条生产线 自动化系统 中, 在 1 级系统中 , 西门 子 s 7系列 P L C控制器应用的最为广泛 。本文重 点讨论 2级 P C机与 1级西门子 s 7系列 P L C的基 于以太网数据通信的实现方法和实际应用情况。 要访 问西 门子的 S 7 3 0 0 / 4 0 0系列 P L C中的 I / O点 、 M和 D B存储区 内的数据 , 有若 干种方 法 可供选择 , 最常用的方法是使用 组态软件 Wi n C C 来读 取 数 据。另外 , 西 门子 还 提供 S A P I s 7和 S e n d / R e c e i v e软件编程接 口来访 问上述区域的数 据。S A P I S 7位于网络 7层协议 的 5~7层 , 是专 门为 S 7连接优化的, 可以方便访 问 P L C内的任意 存储区; S e n d/R e c e i v e 发送/ 接收 位于较低 的层 次。这两个接 口可 以使用 西 门子 的接 口函数 编 写 , 也可以直接用 S o c k e t 接 口函数 编程 。此外还 有一种就是 O P C接 口, 但这种接 口不适用于较快 数据的传输 , 即采样时间间隔不能太短。 下面主要介绍马钢生产实践中这些不同通信 收稿 日期 2 0 1 1 } _ 2 7 ; 修改稿收到 日期 2 0 1 1 - 0 7 - 0 4 作者简介 宋明 1 9 6 8 一 , 男 , 安徽马鞍 山人 , 工程师 , 主要从事 自动化系统集成工作 。 冶 金自 动 化 第3 5卷 方式的优缺点以及他们的适用场合。 l Wi n C C组态工具 Wi n C C是西 门子开发 的监控组态软件 , 它提 供专用的 P L C通信通道。对于 s 7系列 P L C的 s i m a t i c s 7 P 1 0 t 0 c S u i t e 通道 , 支持多个通道单元通 过以太网进行通信 , 包括 工业 以太网和工业以太 网 I I 通道 单元 , 用 于带 s 7功 能 的 I S O协议 ; T C P / I P通道单元 , 用 于带 s 7功 能的 I S O O N T C P 协议 。通道单元通过硬卡 和软卡模板进行通信。 西门子推荐在 P C / P G上安 装 C P 1 6 1 3 / C P 1 4 1 3网 卡, 这些网卡属于硬卡, 可以实现工业 以太网 I S O 协议 的通信。在大多数情况下, 使用普通以太网 卡 , 可以实现 T C P / I P协议 I S O o n T C P协议 的通 信 , 由于不 带专用通信处 理芯片 , 因此也称为软 卡。在使用组态软件中编写 2级计算机应用程序 受到的限制主要来 自两个方面 编程脚本支持程 序访问数据库的方式 以及在 Wi n C C中使用 c脚 本 和 V B脚本。其中 C脚本 的功能比 V B脚本 强大一些 , V B脚本不支持 A P I 函数调用且程序过 于冗 长。Wi n G G 6 . 0以前的版本 , 内置的是 S y b a s e 数据库 , 不易操作 , 一般选择 Wi n C C的用户归档数 据库作为用户数据存储和操作 的数据 库; 用户归 档数据库可以使用控制变量进行简单的读写操 作 , 对于复杂的查询就必须使用 Wi n C C提供的一 系列用户归档操作函数来实现。Wi n C C 6 . 0以后 版本 , 改用 S Q L S e r v e r 数据库并增加了 V B脚本 , 使数据库的访问变得更加方便。马钢的一钢板坯 二级水表系统和二钢棒材 轧制表系统都是 利用 Wi n C C作为通信平台和开发工具来完成的。 2 S AP I . s 7和 S e n d / Re c e i v e接 口 2 . 1 接口 为了克 服组 态软件在应 用程序方 面 的局 限 性 , 通常考虑 使用 西门子公 司提供的 S A P I - s 7和 S e n d / R e c e i v e 接 口来完成通信任务。使用 Wi n C C 组态软件时 , 在 P L C端我们只需要对 C P通信模板 进行组态, 而使用专用 编程接 口时还需要进一步 创建 s 7连接并进行设置。连接的具体协议可 以 根据需要选择 I S O T r a n s p o r t , I S O . o n . T C P , T C P或 U D P 。S A P I - s 7和 S e n d/R e c e i e接 口都是随 S i m a t i c N e t 一起安装到系统上的, S i m a t i c N e t 的版本不 同, 提供的连接组态工具 也有所 区别。比较典 型 的是 2 0 0 0 / 0 5版 , 对应于 5 . 0 , 其中含有 C O ML s 7 等工具; 2 0 0 5版 , 对应 6 . 3 , 在 6 . 0版以后就废弃 了 C O M L s 7工具 , 而采用统一的 P C S t a t i o n工具 。 这两个版本在 建立连接组态 方面有很大的差异 , 在建立连接的时候要注意两者的区别。 2 .1 .1 S AP I S 7 S A P I . s 7应用程序接 口提供一组服务来进行 数据通信管理, 其中, 管理服务提供一些可供读出 配置信息和登录/ 退出通信系统的函数 , 连接管理 服务提供主动或被动建立连接 和关 闭连接 的函 数 , 变量服务提供一些读写函数。 S A P I . s 7接 口不论是在组态还是编程时都会 接触到 V F D V i rt u a l F i e l d D e v i c e 概念。一个应用 程序可以登录一个或多个 C P模板的若干个 V F D, 只有当应用程序登录 C P及其所选的 V F D, 在配置 期间指定给该 V F D的所有连接才有效。 S A P I s 7的优 势在 于, 可以像 Wi n C C组态软 件一样访 问 P L C的各种资源, 如 I / O, M, . D B等。 从组态驱动时的配置过程 可以看 出, 我们使用的 其他组态软件如 I n T o u c h I / O S e r v e r 服务器 和 i F i x的 s 7连接驱动, 都是在 S A P I s 7接 口上开发 的。 其实 S A P I S 7接 口另外还提供了面 向块 的服 务 B l o c k O r i e n t e d S e r v i c e s 来完成连续地址数据 交换的任务。这时数据区只能是数据块 D B , 在 P L C端由 B S e n d/B R e c v 功能块与之对应。 2. 1 . 2 S e n d ,/ Re c e i v e S e n d / R e c e i v e 接 口有两种工作模式 单设备通 信模式和多设备通信模式。前者每个应用程序只 能访问一个应用程序访问点 , 后者则可 以访问多 个 。针对两种模式提供 了两组不同的函数 , S e t R S , C a l l ~ I n a , R e s e t S R 用于单设备模式; S R M D S e t , S R MD R e q u e s t , S R MD R e s e t 用于多 设备模式。 S e n d / R e c e iv e 接口应用的核心是请求块 R e q u e s t B l o c k , 通信实 际上 就是 由 C a l l I n a 或 S RMD R e q u e s t 调用不同任务 j o h 的请求块来 完成的。 一 个通信过程要经历 登录、 连接、 数据交 换、 终止几个 阶段 , 每个 阶段又包含不 同的任务。不 同任务的信息包含在块头 H e a d e r 中, 需要交换 的数据存放在 U s e r d a t a 2和 U s e r d a t a 3中, 每个 区域 中最大数据长度为 4 0 9 6 B 。这两个数据区由 起始地址指针和数据 长度来定义, 由此可以看 出 S e n d/R e c e i v e 接 口适用于一个连续数据 区域的数 第5 期 宋 明, 等 利用以太网实现 西门子 P L C与二级计算机 的通信 6 7 据交换。 同时 , 为了配合 P C的应用程序 , P L C中要利 用 S e n d / R e c v功能块 编写 发送 和接 收数据 的程 序。P L C 中 可 供 使 用 的 功 能 块 有 A GS E N D F C 5 , A G R E C V F C 6 , A G L S E N D F C 5 0 , A G L R E C V F C 6 0 。s 7 3 0 0只能使用 F C 5和 F C 6 , 传送 的数据长度必须在 2 4 0 B以内; S 7 4 0 0可 以使 用全部功能块 , F C 5 0 , F C 6 0传送 的数据长度最多 可达 8 1 9 2 B 相当于 U s e r d a t a 2和 U s e r d a t a 3的 总长度 。 S e n d / R e c e i v e 接 口的优点在 于可 以进行大批 量的数据报文交换 , P L C只要将数据按照双方约 定的报文结构组织到 D B块中即可 也可 以是其他 数据区 。马钢一钢圆坯的二级系统就是采用这 种接口编写 的中间件 , 负责与 P L C的 D B块进行 数据交换 。 S e n d / R e c e i v e接 口缺 乏 S A P I s 7接 口所提供 的变量服务 函数 , 在访 问不连续地址 的资源 时有 很大的局 限性 。 2 . 2 编 程 采用接 口函数编程时, 西门子公 司提供了 S A . P I . s 7和 S e n d/R e c e i v e接 口编程时要用 到 的头文 件 h 、 引 入 库 文 件 1 i b 和 动 态 连 接 库 文 件 d l 1 ] 。但 由于 l i h 文件是采用 c或 c 软件编 译 的, 所 以在选择编程工具 的时候需要特别注意 , B o r l a n d c B u i l d e r B C B 是不能直接使用的, 这 是 因为 C 和 B C B的 1 i b文件格式不 同, 因此使 用前需要对 l i b文件进行改造 , 重新生成 l i b文件。 选择 D e l p h i 的用户可以采用 S o f t w a r e O p t i o n公 司 提供 的 T h e S i m a t i c N e t S A P I s 7 I n t e r f a c e f o r B o r l a n d D e l p h i 套件完成上述编译 工作。适用 V B编 程的用户也 可 以从西 门子公 司网站上下 载开发 包 , 然后才能编程。 需要特别注意的是 S 7 3 0 0 / 4 0 0 P L C遵循“ 高 地址 、 低字节” 的规律_ 3 j , 这与习惯用法不 同, 因此 在对所读取的数据进行操作或给 P L C数据块中写 数据字时要进行相应 的处理 , 例如在 V c 和c B u i l d e r 中可 以使用联合体 来处 理, D e l p h i中可以 用变体记 录做地址转换。 采用 S o c k e t 编程 时, 不需要 在 P C机 上安装 S i ma t i c N e t 等软件和授权 , 这样可 以节省系统开发 的软硬件成本 , 而且开发人员也不需要掌握 S A P I S 7和 S e n d/R e c e i v e 接 口提供 的大量接 口函数的用 法 , 这在某种程度上加快 了系统 的开发 速度 。需 要指出的是 , S o c k e t 方式仍然是基于 S e n d/R e c e i v e 接 口的 , 所 以在 P L C端仍需要有 S e n d / R e c v功能 块的配合才能完成通信任务 。用 S o c k e t 编程访问 P L C数据时需要注意 , 在选择连接伙伴 时有 两种 情况会对编程产生影响 1 不组态 P G / P C , 选择 连接伙伴时选“ 未指定” , 并在地址选项 中保 留伙 伴 的 I P地址和端 口为空 不填任何 内容 。针对 这种连接 , 创建套接字后 只需要指定远程 P L C的 地址和端 口, 用 B o d a n d的 S o c k e t C l i e n t 组件编写 的程序就可以顺利读写 P L C的数据。 2 组态一 个 P G / P C, 并 指定 连接伙伴 为此 P G / P C时 , 地址 选项中 I P会 自动填写 P G / P C的 I P, 自己指定一个 端 口。指定通信伙伴后 , 需要将套接字和本地 P C 的地址和端 口绑定 B i n d 。采 用 S o c k e t C l i e n t 组 件连接时, 由于本 地端 口是随机 的, 通 常不会与 P L C指定伙伴 的端 口一致 , 因而会导致连接失败 , 所以用 S o c k e t C l i e n t 不能完成对 P L C指定通信伙 伴的编程。而采 用 I n d y公 司的 I d T C P C l i e n t 组 件 就可 以完成 上述 功能 , I d T C P C l i e n t 有 B o u n d I P和 B o u n d P o 两个属性 , 方便指定本地端 口。 3 oPC O P C是一个工业标准 , 它 以组件对象模 型和 分布式组 件对象模 型技 术为基础 , 通过 C O M接 口, O P C客 户程 序可 以与一 个或 多个 供应 商 的 O P C服务器连接 , 同时一个 O P C服务器也可以与 多个客户程序相连。 O P C基金会公布 了通用接 口, 由于 c 编程 软件能够直接访 问通用接 口, 因而通过这个 接 口 就可以访 问 O P C S e r v e r了 。但是对于 V B, D e l p h i 等编程软件或工具 , 不能直接访 问通用接 口, 因而需要通过所谓的自动化接 口 a u t o m a t i o n i n t e r f a c e 来实现上述 目的。 自动化 接 口为编 程提 供 了一 组 对 象, 其 中 O P C S e r v e r 对象处于层次结构的最顶端 , 用于管理 服务器内部状态信息 , 创建 和管理组对象 和浏览 器对象。O P C浏览器对象用于浏览服务器内部的 数据组织结构 ; O P C组对象可 以管理组对象内部 的状态信息, 创建和管理 I t e m数据项对象, 代表了 与服务器数据源的连接 』 , 实现实时数据 的存取 。 组有两种类型 , 公用组可 以被多个用户共享 ; 局部 组只能被一个用户使用。读取数据可 以分从设备 读取和从缓冲区读取 , 从设备读取时 , 服务器直接 冶 金自 动化 第3 5 卷 从设备读取 ; 从缓冲区读取时, 服务器不访 问物理 设备而只从 内存 中读取 , 速度较快。读取有 同步 和异步两种方式 , 其中, 异步方式只适用于从设备 读取。 如果安装了 S i m a t i c N e t 就会 自动安装 O P C . S i ma t i c N e t 服务器 , 通过用户程序可以在读取本机 上所有 O P C服务器 时看 到它。为了能正 常使 用 O P C . S i m a t i c N e t 服务器与 P L C通信 , 仍然要建立 与 s 7的连接 , 组态工 具依然 是 C O ML s 7或 P C S t a t i o n , 但在 细节上 与使 用 S A P I s 7和 S e n d / R e . c e i v e略有差别 , 可见这种通信方式仍然是基于 s 7 的。我们也可以不使用 O P C . S i m a t i c N e t 作为服务 器 , 而使用专用的 O P C开发工具 , 如 K e p S e r v e r E x , T o p S e r v e r 等 , 创建 O P C服务器 , 这样就省去 了 安装 S i e m a t i c N e t 和创建连接的过程 。 使用 O P C不仅可以在没有 S i m a t i c N e t 的环境 下通信, 而且也不必在 P L C端编写接收/ 发送程 序。从这个角度说 O P C更具有通用性 , 只要控制 器能够提供 o p c服务功能就可以完成通信, 而不 必依赖控制器提供的接 口函数和特殊功能块。由 于马钢三钢转炉合金配料的 2级系统和 1级 P L C 系统的数据交换不是很频繁, 对及时性要求也不 高, 因此采用了 O P C方式进行通信。 4 结束语 从马钢的实际应用情况看,Wi n C C或其他组 态软件虽然是基于 S A P I s 7接 口的, 但由于其局限 上接第5 1页 WANG J u n - s h u, YI N Mi n g h a o ,GU We n x i a n g, e t a1. Re s e a r c h o n i n t e g e r l i n e a r p r o g r a mmi n g i n t h e a r t i fi c i a l i n t e l l i g e n t p l a n n i n g[ J ] . Wo r l d S c i T e c h R&D, 2 0 0 8 5 1 - 1 0. [ 5 ] 闫家富. 用单纯形法求线性规划最优解通用程序[ J ] . 电脑学习, 1 9 9 6 4 4 7 _ 4 8 . YAN J i a - f u .U s i n g t } l e s i mp l e x me t h o d f o r s o l v i n g l i n e a r 性使其不能用在较为复杂的2级系统中。S A P I - S 7 接口虽然能同时访问连续地址和不连续地址 的资 源, 但其编程较为复杂。由于 1级和 2级系统的 数据通常采用报文交换 的方式, 报文数据在 P L C 端一般存储在 D B的连续地址中, 因此用 S e n d / R e . c e i v e 接 口最为合适。随着 O P C专用控制器驱动 的不断完善、 通信 的快速性和可靠性 的不断提高 以及应用程序开发的易用性和通用性 的优势不断 加强, 使其具有很好的发展前景。 参考文献 [ 1 ] 谭浩强. C语言程序设计[ M] . 北京 清华大学出版社 , 1 9 91 . [ 2 ] 钱能. c 程序设计教程 [ M] . 北京 清华大学出版 社 , 1 9 9 9 . ’ [ 3 ] 刘华波, 基于 S i m a t i c s 7的高级编程[ M] . 北京 电子工 业 出版社 , 2 0 0 7 . [ 4 ] R o g e r J e n n i n g s . V i s u M B a s i c 6数据库开发人员指南 [ M] . 前导工作室, 译. 北京 机械工业出版社 , 1 9 9 9 . [ 5 ] 雷斌 , 杨建华. V i s u a l c 6 . 0网络编程技术[ M] . 北 京 人民邮电出版社, 2 0 0 0 . [ 6 ] 刘智勇, 韦巍, 朱妙松. S o f t n e t 技术应用研究 [ J ] . 工 业控制计算机, 2 0 0 3 , 1 6 8 4 7 - 4 8 , 5 7 . LI U Zh i y o n g,WEI We i ,ZHU Mi a o - s o n g.Re s e a r c h O i l s o f t n e t t e c h n o l o g y [ J ] . I n d u s t r i a l C o n t r o l C o m p u t e r , 2 0 0 3 , 1 6 8 4 7 - 4 8 , 5 7 . [ 编辑 魏方] p r o g r a m m i n g o p t i m a l s o l u t i o n g e n e r a l p r o g r am [ J ] .C o rn p u t e r S t u d y , 1 9 9 6 4 4 8 . [ 6 ] 邹颖.最优性原理与函数极值 [ J ] .安徽教育学院 学报 自然科学版, 1 9 9 7 1 l 1 一 l 4 . Z OU Yi n g . O p fi mali t h e o r y a n d t h e e x t r e me v a l u e o f f u n c ti o n l J I .J o u r n al of A n h u i I n s t i t u t e of E d u c a t i o n N a t u r a l S c i e n c e E d i ti o n , 1 9 9 7 I I I 一 1 4 . [ 编辑 沈黎 颖] 征文通知 为适应科学技术日新月异的变化, 促进冶金企业的信息化和自动化, 满足读者和作者的需要, 冶金 自动化 杂志社与 全国冶金自动化信息网合作于 2 0 1 2年 4月出版 冶金自动化 增刊 有正式出版期刊号, 也作为全国冶金自动化信息网年 会论文集 , 希望广大作者、 读者踊跃投稿。文稿一经录用, 将收取论文发表费。4页 以1 8 0 0字排版格式为 1 页计算 以 内, 收取 8 0 0元 ; 每增加一页加收 1 0 0元。论文见刊后将向第一作者支付 1 0 0元稿酬。 冶金自动化 增刊 自2 0 0 3年起加 入中国知识资源总库“ 中国重要会议论文全文数据库 C P C D ” , 增刊刊出的全部论文在该数据库中均可检索到。增刊出 版后, 向每篇文章第一作者赠送一本样刊。若其他作者需要, 可以和杂志社联系订阅, 每本收取工本费8 O元。 投稿 网址 “. W W W. y j z d h . c o m投稿 时请注明 增刊投稿截稿 日期 2 0 1 1 - 1 2 - 3 1 电话 0 1 0 6 3 8 1 5 2 6 9 . 6 3 8 4 8 1 2 8
展开阅读全文