资源描述:
2 0 1 2年第 1 期 安徽冶金 3 1 利用 F E T C H / WR I T E方式实现 P C机 与 S 7 P L C的直接通讯 张世 友 马鞍 山钢铁股份有 限公 司 摘要介绍 了西 门子 S 7系统 P L C和计算机通讯的几种方式 , 着重阐述 了 F E T C H/ wRI T E通讯方式的组态配 置、 原理 、 报 文格式等 内容; 同时描述 了计算机通讯模 块的 T C P / S o c k e t 通讯 的原理 、 程序流程 图、 多线程操作 、 以及 如何 利 用 VC 2 0 0 5实现整 个 同模 块 。 关键词 S 7 F r C H / wRI T E Soc k e t 重叠式 I / 0 多线程 U s i n g F E T C t I / WR I S e r v i c e t o A c h i e v e D i r e c t C o mmu n i c a t i o n Be t we e n P C a n d S 7 PLC Zh a ng S My o u Ma a n s hen Ir o l l S t ea I C o .L t d . Ab s t r a c t Cr r na nic at i o n mo de s be t wea n Sieme n s S7 P L C a n d c omp u t e r s y s t e ms a r e in t r o du c e d.Th e c o n f i g u r a t i o n, p r i n c i p l e a n d p a c k e t f o r ma t o f F E T CH / WR l T E c o mmu n ic a t io n a r e d i s c u s s e d wi t h e mp h a s i s .A t t h e s a me t ime ,t h e p r i ncip le, p r o c e d u r e f l o w c h e r t a n d m u l t i- t h r e a d e d o p e r a t io n of T O P / IP S o c k e t c o m m u n i c a t io n i n t h e c o r T 1 D u t e r c m n u n i c a t i o n m o d u le a n d i n t e g r a t i o n o f t h e wh o le mo d u le b y u s i n g VC- I- - t - 2 0 0 5 are d e s c r i b e d. Ke y w o r d s S7 F ET C H/ WR I T E s o c k e t o v e r l a p p e d I/ O mu l t i- t h r e a d i n g 0 前言 随着 P L C性价 比的不断提高, 其应用范围不断 扩大 , 特 别是近年来 P L C 向着 大型 网络化 方 向发展 , 已经渗透到钢铁、 化工电力、 制造和运输等各个行业 中。针对 P L C编程、 计算能力有限及 P C机大量应用 的情况, P C机与 P L C的结合使用成为必然趋势。在 各行各业的控制系统中西 门子的 S 7 P L C被广泛采 用 , 由于西 门子 公 司 目前 没有 公 开西 门子 的 S 7以太 网通讯 协议 , 目前 S 7 4 0 0 P L C和 P C机 通讯 的方式 主 要有 以下几种 1 通 过西 门子 O P C服务器 实现 P C机 和 P L C通 讯 。 2 N用 西 门子 的 S A P I 西 门子应 用 程 序 编程 接 口 调用西门子提供的动态链接库函数来实现 P C机 应用程序和 P L C之间的数据之间交换 。 3 在 P L C和 P C机之间建立通讯连接 , 调用 P L C 的通讯功 能块 , 利用 T C P / I P协 议 之间 和 P C机进 行 通 讯 。 4 iJ 用 F E ] H/ WR I T E方式实现 P L C和 P C机 之间通讯 , 直接 读 取 P L C的 M 区、 I区、 Q 区、 D B 区 等区域内的任何数据。 以上 4种方式虽然都能和 P L C实现数据交换 , 前三种通讯方式有 的要安装数量不等的西门子软软 件 , 有 的只能交 换某 一 特定 数 据块 的数 据 , 增加 系 统 的软件成本和调试维护的难度; 而第四种利用 Wi n d o w s 操作系统中的 T C P / I P协议和 P L C的 F E C T H/ WR I TE通 讯方式 直 接实 现 P L C和 P C的数据 交换 , 不仅节省 了系统的软 件成本 , 同时 加快 了系统 的响 应 速度 , 可 以读 P L C中所有 区域 内的数据 。 1 S 7 P L C端 的通讯 T C P / I P是 当前应用最为广泛的通讯协议 , 广 泛应用于各种 P C网络 ; 西 门子 的工业以太网卡如 C P4 4 3 1 也 支 持 T C P / I P 协 议 , 为 P L C和 P C 通 讯 提 作者简介 张世友 , 工程 师, 安徽 省马鞍 山市 2 4 3 0 0 0 马钢 自动化工程公司 3 2 AN HU I ME T AL L U R G Y 2 0 1 2年第 1 期 供 了硬 件基 础 ; TC P / I P协 议 实现 了两种 通 讯 方式 面向连接的 TC P 通讯方式和无连接 的 UDP 通 讯方式; 由于工业现场的数据都十分重要 , 为了保证 通讯的准确无误 , 采用了连接的通讯方式。 1 . 1 S 7 4 O 0 一 P L C 的硬 件及 网络组 态 为了使 S 7 4 0 0 一 P L C能够和 P C机进行通讯 , 需 要通过 C P 4 4 3 - 1以太网模块, 将 S 7 4 0 0 一 P L C 连到 以太 网上 , 同 时设 置 好正 确 的 I P地 址 和 网关 等 , 进 人西 门子 硬件 组态 , 选 择 C P 4 4 3 1以太 网模 块 的属 性 , 在 相 应 的位 置 设 置好 I P地址 、 网关 和 子 网掩 码 等相 关信 息 ; 在 西 门子 的网络组 态软件 NE T P RO 中要 建立 一个 通讯 连接 , 在 网络 协 议栏 中选择 TC P 协议 , 同时设 置好本 地通 讯 的端 口 , 同时将 连接 的方 式设 置 为 F E T CH/ WRI TE方 式 , 且 P L C作 为通 讯 服 务器 方 。 1 . 2 S 7 4 0 0端通 讯 程序的 实现 利用 F E T CH/ wR1 T E方式其他设备可以存取 S 7系统 中的任何存储期 的数据 , 进行数据交换 时, 在 S 7 4 0 0 P L C段不需要编写任何程序 , 只需要按 照要 求 设 置 好 相 应 的 通 讯 连 接 , 并 且 P C机 按 要 F E T CH 和 wR I TE的 P DU 的要 求 发送 相 应 的 通 讯请求报文 P L C, P L C根据接受 的请求报文后对请 求 报 文解 析处理 , 然 后 返 回确 认 数 据报 文或 响应 数 据报文 , 完成一次通讯操作 。 为 了 通 过 F ET C H/ WR 1 T E 方 式 和 P C 机 通 讯 , 必须要知道每个通讯报文的数据组成 , S 7请求 报文 的长 度有 1 6个 字 节组 成 , 分 为 向 P L C写 数 据 的数 据报 文格 式 和从 P L C读 取数 据 的数 据 报 文 格 式 。 1 . 2 . 1 向 P L C写 数据 的请求报 文 和相应 报 文格式 写数据请求报文由 P C发送到 P L C, 主要包括 系统标识 、 包头长度 、 操作代码表示 、 操作代码长度 、 操作代码等 , 这些内容对每个报文都是固定的值 , 同 时报文包括操作的区域 D B区、 I区、 Q 区、 M 区、 C 区、 T区 、 数据块号 在对 D B区操作时有效 , 范围 为 l 2 5 5 、 以字节为单位的起始地址、 以字节为单 位的数据长度和要发送的具体数据 。写数据响应报 文由 P L C发送到 P C机 , 确认写数据请求报文的处 理 情况 , 如 果 成 功 , 则 数 据 写 响应 报 文 的错 误 代 码 E r r o r f i e l d 为 0 , 如果请 求报文中的数据有误 , 则 通过写数据响应报文返 回错误代码 。图 1为写数据 报文及其响应报文。 W RI TE r e q ue s t f r a me W RI TE a c kn o wl e d g me n t f r a me 0 一 “ S ” Sy s t e m I D 1 ⋯ 5’ 2 Le n g t h of h e a d e r 0 1 0 3 I D OP c o d e 0 01 4 Le n g t h OP c o d e 一 0X 0 3 5 OP c o de 一 0X 0 3 6 0RG f i e 一 0 0 3 7 Le n g t h ORG f i e l d 一 0X 0 8 8 ORG 1 0 9 DBNR A Hi g h By t e S t a r t a d d r e s s B L o w By t e C Hi g h By t e Le n g t h D Lo w By t e E Em p t y f i e l d 0 F F. F Le n g t h e mp t y f i e l d O O Z Da t e u p t O 6 4 K O S y s t e m I D 一 S 1 “5 ” 2 Le n gt h o f he a d e r 一 0X 1 0 3 I D 0P c o d e 0X 0 1 4 Le n gt h OP c o d e 一 0X 0 3 5 0P c o d e 一 0X 0 4 6 Ae k f i e l d 0 0 F 7 Le n gt h e m p t y f i e l d O O 3 8 Er r o r f i e l d No 9 Emp t y f i e l d 0 FF A Le n gt h e mp t y f i e l d 0 0 7 B C D f r e e E F 图 l 写数据报文及其响应 报文 1 . 2 . 2 从 P L C读取数据 的请求包和相应包格式 读数据请求报文由 P C发送到 S 7 P L C, 能够读 取的数据区域和写入数据相同, 主要不 同是操作 代 码不 同 , 其 读请 求报 文不 含数 据 区 ; 读响应 报文 除 了 含 有报 文头外 , 还 包 含请 求 数 据 包 中所 请 求 读 取 的 数据, 若错误 , 则返 回错误代码。图 2为读数据请求 报 文及 其相应 报 文 。 F ETCH r e a u e s t f r a me W RI TE r e q u e s t f r a me O S y s t e m I D 一 ⋯ S’ 1 一 5’ 2 Le n g t h o f h e a d e r 一 0X 1 0 3 I D 0P c o d e 0 0 1 4 Le n g t h OP c o d e 一 0X 0 3 5 0P c o d e 0 0 5 6 oRG f i e l d 一 0 0 3 7 Le n gt h e mp t y f i e l d 0 0 8 8 0RG 1 0 9 DB NR A Hi g h By t e _ ‘ S t a r t a d d r e s s B L o w By t e C Hi g h Byte Le n g t h D Lo w By t e E Emp t y f i e l d 0 FF. F Le n g t h e mp t y f i e l d 0 O 2 0 一 “ S ” S y s t e m I D l 一 ⋯ 5’ 2 Le n g t h o f h e a d e r 一 0X 1 0 3 I D 0P c o d e 一 0X 01 4 Le n g t h OP c o d e 0 0 3 5 0P c o d e 一 0 0 3 6 0RG f i e 一 0 03 7 Le n g t h ORG f i e l d 一 0 08 8 0RG I O 9 DBNR B C D f r e e E F Da t e u p t o 6 4 K b u t on l y I f Er r or n o .一 0 图 2 读数据请求报文及其相应报文 2 计算机端 通讯 程序 在 WI ND WOWS操作系统下 , 通过 WI NS OC K 网络编程接 口, 来实现应用程序的网络通讯功能 ; 为 2 0 1 2 年 第 1 期 安徽 冶 金 3 3 了减少程序 的 C P U 占用率和提 高系统 的实 时性 , 采 用 了 Ov e r l a p p e d I / O 重 叠式 I / O S o c k e t 通 讯 方 式 。通常一 台 P C机有可能和多台 P L C连接 , 为使 程 序 高效执 行和 减 少程 序 设 计 的 复杂 性 , 将 采 用 多 线程技术 , P C机和不同 P L C的通讯有不 同的线程 来完成, 整个通讯程序采用 Vi s u a l C 2 0 0 5开发 平 台下完成 。 2 . 1通讯 程序 的主 要流程 及程 序 实现 P C机 和一 台 P L C通讯 的 功能都 在 一个 线程 函 数 中完成 。主要 过 程有 首 先 初 始 化 Wi n S o c k e t 通 讯动态连接库, 然后创建套 接字, 并 且将其邦定 到 T C P协议 上 ; 然 后 开 始 和 P L C 的 以 太 网接 口进 行 建立连接 ; 在连接建立好 以后 , 开始向 P L C发送读 或写数据的请 求报文 , 并进行 I / O重 叠操作 , 等待 P L C响应 ; 测 试 有 没 有 数 据 发送 , 若 有 , 则 接 受 , 若 没有 , 则 继续测 试 ; 整 个程 序 的流程 图如 图 3所示 。 图 3 P C机 通 讯 流 程 图 为了和多个 P L C进行通讯 , 可以在通讯模块中 为每个 P L C创建一个通讯线程 , 由不同的线程和不 同的 P L C进行通讯 , 这样便于系统的调试 和维护 , 同时程序设计时采用了通 讯容错技术 , 在 P C机和 P L C的网络出现故 障时 , P C机每隔 3 0 s同 P L C建 立通讯连接 , 只要 P L C重现在线 , 不需要人工干预, 系统能 够 自动恢 复正 常 。 2 . 2数据字 节顺 序 的处理 因 S 7 4 0 0 P L C和 P C机的在整数和浮点数等数 据类型中高低字节顺序 正好使相反的, 为了保证数 据 正确 的传 输 , 在 P C机端 需 要对 接 受到 的 P L C数 据和发送给 P L C的数据进行高低字节顺序的对调 ; 利用 C 语言 中的 u n i o n 联合体 可 以实现该功 能 过程如下 首先定义联合体 S 7 Da t a , 在联合体 内 部定 义一个 整 型数 两个 字节 变量 i D a t a 、 浮点数 4 个 字 节 变 量 f D a t a和一 个 4个 字 节 的 c h a r 字 符 类型的数组变量 e D a t a [ 4 ] , 在数据接受 自P L C或发 往 P L C整型数 、 浮点数分别 放人联合体的 i D a t a或 f D a t a变量中, 然后将 c D a t a [ 4 ] 中将高低字节顺序 颠倒 , 联合体 中的 i D a t a或 f D a t a 根据 P L C数据类 型 就是 P L C 中相 应数 据 的值 了。 3 结语 为 了便 于和 控制 系统 和 二 级 系统 的集成 , 已 经 将本技术开发成中问件 , 成功应用于江阴兴澄铁钢 1 加热 炉三级 系 统 、 马 钢 车轮 压 轧线 机 械手 控 制 系 统 等生 产线上 , 通 过近 几年 的运行 , 证 明该通 讯方 式 简捷高效 , 保证了工艺数据和设定值的高效传输。 收稿 日期2 0 1 1 1 2 2 O 上 接 第 2 4页 当前信息化高度发展 , 企业在政策、 业务上探索 出良好的价格策略, 需要依靠科学的信息系统来得 以更完美的实现 。 月旬调价 、 返利、 到款优惠等价格策略 , 在 S AP 系统中经过严密配置与开发 , 得到良好的实现 , 为公 司在市场上的竞争与发展起着推波助澜的作用。 在公司今后 的发展过程 中, 必将在现有价格策 略基础上 , 发展 出新的竞争策略, 信息化系统中已经 为公 司 的价 格 策略 搭 建 出 实用 的功 能框 架 , 当新 的 价格策略制定 , 可以很方便的在此基础上进行补充 开发 , 以适 应公 司 的发展 需求 。 收 稿 日期2 0 1 1 1 1 2 0
展开阅读全文