资源描述:
第 1期 总第 1 8 2期 2 0 1 4年 O 2月 机 械 工 程 与自 动 化 ME CHANI C AL ENGI NEE RI NG AUTOMATI ON No .1 Fe b. 文章 编号 1 6 7 2 6 4 1 3 2 0 1 4 0 1 0 0 0 7 0 3 基于 C o D e S y s的软 P L C标准数据接 口研 究与实现豢 申 超 ,龙 辛 ,黄 波。 ,詹俊 ,庞 伟 1 . 湘潭 大学 信 息工程 学 院 电气 工程 系。湖 南 湘 潭4 1 1 1 0 5 ;2 . 湘 电风 能有 限公 司,湖 南 湘潭 4 l l 1 0 5 ;3 .长 沙金博联 信息技术有限公司 ,湖南 长沙4 1 0 0 0 0 摘要 基 于实时多任务 V x Wo r k s操作系统 和 C o D e S y s开发环境 的软 P L C实现 一种 通用数据 交 互标 准 化接 1 1 。该接 口实现于系统软件层 ,上层应用只需通过变量名就可 以对变量进行操作,实现 了上层用 户对数据的 透 明访 问.如 C o De S y s 工程 间数据 的交互、多级 P L C间数据的交 互以及 主控制任务 与子控制任 务的数据 共 享。实验验证 了交互数据的有效性 、实 时性 ,并成功地应用在 了 Mw 级风力发电机 主控制器上 。 关键词 软 P L C;Vx Wo r k s ;C o D e S y s ;标准数据接 口;哈希表 中图分类号 TP 2 7 3 文献标识码 A 0 引言 目前的软 P L C大多针对不 同的变量交互分别设 计变量交互接 口, 造成客户二次开发代码繁杂 、 工作量 大 。实现 一 个 通 用 标 准 数 据 接 口 S t a n d a r d Va r i a b l e I n t e r f a c e ,S VI 可以减轻上层 P L C开发人员 的工作 量、 简化上层代码L 1 ] 。本 文基 于本 项 目自主研 发的 国产化软 P L C, 展开了对 P L C内部通信接 口的标准化 和通用化的研究 。 1 基于 C o D e S y s 软 P L C概 述 图 l为采用嵌入式软 P L C系统 的总体结构方案 。 软 P L C系统由开发 系统 和嵌入式运行系统两部分组 成 , 开发系统 采用 C o D e S y s开发环境 , 嵌人式运行 系 统采用 Vx Wo r k s系统。软 P L C均遵循 I E C 6 1 1 3 1 ~3 标准 , 支持 5种标准语言编程 S T, I L, F B D, L D以及 S F C 。C o D e S y s 是德国 3 S公司开发的一个独立编程 系统 , 它几乎可以适用于所有的工业控制器 , 支持包含 I E C 6 l 1 3 1 3协议 5种标 准编程语 言在 内的 6种语 言 ] 。Vx Wo r k s 是 美 国 风河 公 司 推 出 的 一 款 实 时 多 任务嵌入式操作系统 , 与其他嵌入式实时操作系统相 比在实时性、 可靠性方面具有一定的优势 , 现已广泛应 用 于航空航天 、 军事 、 交通以及通讯等领域 中。 2接 口设 计 方案 2 . 1设 计 思 路 S VI 中共享的数据 主要为上层 P L C工程定义的 I E C变量 以及子控制任务的变量 , 因此按照模块化设 计思路给子控制任务分配一块固定大小的内存区用以 存储对应控制任务变量, 并给 P L C上层工程也各 自分 配一片同样大小的内存区, 通过一套对 内存 区变量 的 映射机制来实现变量共享。 图 1 嵌 入 式 软 PL C 系统 的 总体 结构 方 案 2 . 2 共 享数 据 区规 划 根据不同的数据类型将存储变量分 为四类 MX, MB , Mw, MR, 用以分别存储 1位、 8位、 3 2位长度的 整型数据 以及 3 2位浮点 型数据 。每种 数据 各预 留 2 5 6个 。计算得到每个共享区分配长度为 2 5 6*1 2 5 6*8 2 5 6*3 2 2 5 6*3 2位共 2 3 3 6字节 。 为了方便统一寻址 , 在变量与数据 区间增加一层 * “ 十一五” 国家科技支撑计划项 目 2 0 0 6 B AA0 1 A0 6 收稿 日期 2 0 1 3 0 4 2 8 ;修 回日期 2 0 1 3 - 0 8 - 1 8 作者简介 申超 1 9 8 7 一 ,男 ,湖南邵 阳人 ,在读硕士研究生 ,主要研究方向新 能源发 电系统 。 学兔兔 w w w .x u e t u t u .c o m 8 机 械 工 程 与 自 动 化 2 0 1 4年第 l 期 变量到地 址 的映射 , 既 可 以通 过 变 量 名 对 变量 进 行 访 问 , 也 可 以通过 统 一的地 址形式 对 变量读 写 。 2 . 3标准数据 接 12的 实现 图 2为 S VI 映射关系的创建流程, 在上电时, P L C 读取 No r F l a s h中的配置文件 , 调用解析程序获得配置 信息, 根据获取 的用户配置信息初始化共享数据区, 并 根据配置文件建立起用户配置 的 S VI 变量的映射关 系, 将对应的数据写入数据区。 解析s M c 配置 文件 I 创建S V I 链 表 0 取C o D e S y s 全局变 量 完善S V I 链表 图 2 S V1 映 射 关 系的 创 建 流 程 C o 1 e S y s 有一套 严谨 机 制 用 以对 I E C变 量访 问 , 工程 中的每个变量 , 都会生成对应的一个函数块来保 存名 字 、 数 据 类 型 以 及 数 据 地 址 等 。 例 如 在 工 程 Ap p l i c a t i o n l中声明 一个全 局 变量列 表 GVL VAR GLOB AI n Co u n t e r I NT 一 2 O ; / / 定义全局变量 n C o u n t e r , 并初 始化 END VAR 另外 在 Ap p l i c a t i o n 1中声 明一个程 序组织单 元 POU PROGRAM H . _l RG VAR /* 声明两 个局部变量 A和 B */ A DI NT ; B DI NT ; END_VAR 图 3为实例对应底层创建 的 I E C变量结构。图 3 中 I E C变量采用树形结构进行管理, 第 l 级节点为工 程节点 , 即 C o D e S y s 每创建一个工程则对应生成一个 工 程节 点 。如前 C o D e S y s 介绍 中所 述 , 在 C o D e S y s 工 程中采用程序组织单元 P OU 实现 主程序 , C o De S y s 将 第 2级 节 点分 为 全 局 变 量 列 表 GVL节 点 与 P O U PLC P R G 节点 , 第 3级 叶节 点 保 存 了 声 明 变量 的信 息 。 C o D e S y s 的动态链接库提供丰富的接口以方便二 次开发, 其 中 C mp l e c Va r Ac c e s s 组件提供了对 I E C变 量访 问的 接 口, 可 以获取 C o De S y s工程 中定义 的全 局 I E C变量。为了简化上层用户使用 S VI 变量 的操作 , 默认 全局 变 量 即 为 S VI 变 量 。因 此 在 下 载 C o 1 e S y s 工 程 时 , 可 以 通 过 调 用 C mp I e c Va r Ac c e s s组 件 获 取 C o D e S y s 工 程 中全局 变 量 的信 息 , 根 据 获取 到 的 I E C 变量信息 创 建 P I C 主 任 务 对 应 的 S V1 子 链 表 , 添 加 I E C全局变量名称到分配的内存地址间的映射 , 完善 整个 S V1 链 表 。 图 3 I EC变 量 结 构 图 根据前述分析, S VI 采用 3级链表结构 , 结构示意 图如图 4所示 。第 1级节点 为控制任务轴模块节点 , 如前所述 P I c系统控制任务默认为第 0轴 , 第 2级节 点为变量名 , 第 3级节点为映射地址。当需要访问一 个 S VI 变量时 , 既可以仅通过变量名 控制模块 变量 名 取得映射地址从而访问数据 , 也可以通过统一的地 址格式 直接访 问数 据 , 1 缴 点 Z 敬 节 息 3 缴 息 控常 ’ 变量名 链表 映射地址 数据 区 任务链表J ● A X I S 0 l M X O . 2 5 5 P L c 系统控制任务 r n C o u n t e r M W / o / o \ M B O . 2 5 5 、 M W 0 .2 5 5 。_ 一 一 I R O . 2 5 5 S R P o s M i n ’ M R / 1 / O M X 0 . 2 5 5 A X I S 1 L S R P o s x ’ R / 1 / l M B O .2 5 5 s M C 控钳 任务r - S R _S p d M a x _ - M R / 1 / 2 S R A c c M a x ’ M R / l / 3 M w O . 2 5 5 S R R e f P o s ’ - . M R / l / 4 、 M R 0 . 2 5 5 _ . A X I S 2 L - _ 卜 S M C 控制任务I- ; . 1 / 图 4 S VI 映射关 系示意图 为了降低数据存储 的时间消耗, 保证系统 的实时 性, 本方案采用了一种最简单高效 的开源哈希实现结 构一 u t h a s h [ 11 ] 。u t h a s h使用起来 十分方便 , 只要将 头文件 u t h a s h . h包含进去就可以使用 。 前述 S VI 数据 变量 的存储 就是维护 2层哈希表 结构, 结构体定义如下 第 1 级父节点 , 实现任务模块 到其变量名空间的 映射, 其内哈希节点定义如下 t y p e d e f s t r u c t S VI mo d Nod es t r u c t { c h a r mo d Na me [ 1 6 ] ; /*k e y值 , 任务模块名 */ DWOR D c o n n id ; /* 2级哈希表入 口地址 */ U T h a s hh a n d l e h h;/* h a s h h a n d l e*/ } SVI roo d No d e ; 第 2级节点 , 实现变量名到标准地址的映射 , 其内 哈希 节点定 义如下 t y p e de f s t r u c t SVI v a r Na m e No d es t r u e t { c h a r v a r Na me [ 1 2 8 ] ; /*变量名 k e y / S VI AD DR r S VI Ad d r ; / * 标准变 鲢地址*/ U Th a s hh a n d l e h h; /* h a s h h a n d l e*/ } S V1 v a r Na me No d e 学兔兔 w w w .x u e t u t u .c o m 2 0 1 4年 第 l 期 申超 , 等 基于 C o D e S y s的软 P L C标 准数据接 口研 究与 实现 9 h h为哈希节点句柄 , 实现节点间的链接。 SVI _AD DR为变量地址结构体 , 定义如下 t y p e d e f s t r u c t SVIADDRs t r u c t { C HARVa r C o d e ; /*变量类型 , 1 MX;2 ; MB;3 I MW ;4 ; MR */ CHAR V a r l n d e x ; /*地址偏移量 , 0到 2 5 5 */ }SVI ADDR; 开放 给 上层用 户 的 函数接 口主要 有 如下几 个 SVI _C o n n e c t 父链表有对应的哈希节点 , 则返 回 对应 子链 表 的人 口地址 , 否则返 回一l 。 SVI Ge t Ad d r 取到对应 的变量名与变量地址结 构体子哈希表的人 口地址 , 根据变量名搜索映射 哈希 表 , 取得 对应 的 r S VI Ad d r 并返 回。 S VLWr i t e 、 S VI Re a d 根 据 r S V I Ad d r 搜 索 对 应 的数据映射表, 得到数据地址 , 并根据数据类型进行相 应的读写操作。 2 . 4 多级 P L C数据 共 享的 实现 若有多 P L C级联 , 则选定其中的一个为主 P L C, 主 P L C发送任务定 时检测数据 区及配置 区, 若有变 化 , 则将整片共享数据或配置信 息按 固定格式封装发 往各个从 P L C, 从 P L C接 收任务并解析 接收到的数 据 , 若有变化则覆 盖本地数据 ; 从 P L C若主动对数据 区或 配 置 区进 行 操 作 , 则 将 改 动 信 息封 装 发 往 主 P L C, 主 P L C接 收 任 务 并 对 收 到数 据 进 行 解 析 , 对 本 地数据区或配置区进行对应 的改动 , 以此实现各 P L C 上的数据实时 同步 。多级 P L C数据交互过程如 图 5 所 示 。 S VI 程 序 流程如 下 在软 P L C启 动 时 完成 对 S VI 配置文件 的解析 , 并分配内存 区; 同步共享 区数据, 并 保留当前数据 区的 MD 5值 ; 等待下 一次判 断 , 当主 P L C的 MD5 值发生变化 , 则将 内存 区打包发 送给各 从 P L C, 并更新 MD 5值为当前值 。 3实验 及结 果分 析 采用 一 台 电 脑 连 接 主 P L C, 一 台 电 脑 连 接 从 P L C, 分 别编 写 C o D e S y s环 境 下 的测 试 工 程 , 在 连 接 主 P L C的 C o D e S y s 测 试 工 程 中定 义 一个 全 局 变量 , 在 连接从 P L C的 测 试工 程 中实现对 主 P L C全 局变 量 的访问, 在两个工程 中依次实现对变量的加~操作, 且 均采用 1 0 0 ms周期同时执行 。累计执行 5 O 0 0 0次, 在初始值为 0时得到的最后计数值为 1 0 0 0 0 0 , 证明数 据交互 的有效性 。 { } 主P L C 从P L C 申 Writ e . ‘ S V I 共享区 S V I 共 享区 { ▲ ● R e a d _V a t 0 I I W r i t e _ Y a r 0 l l R e a d _ V a t 0 I V x W o r ks 0 S V x Wo r k s 0 S 图 5多级 P L C数据交互示意图 采用 同样的连接设置 , 主 P L C每次对全局变量进 行更改 , 从 P L C只进行读操 作, 并分别记下每次更改 的时间差值 , 累计执行 5 O 0 0 0次 , 比较两边工程的累 计时间差值 , 总时问差值小于 1 0 S , 即每次的时间差值 小 于 0 . 2 ms , 证 明了数据 交互 的实 时性 。 4结束 语 S VI目前 已 经 应 用 到 基 于 本 课 题 的 嵌 入 式 软 P L C的风力发电控制系统 中, 可 以满足风力发 电控制 系统的交互需要 , 数据交互 的实时性与有效性均得到 了验证。标准数据接口具有简洁、 通用和灵活的特点 , 对于推广软 P L C技术具有一定的意义和价值。 参考文献 [ 1 ] 赵强 , 张建瓴 , 可欣 荣 , 等. 软 P L C技 术研 究现状 与发 展 趋势E J ] . 科技信息 , 2 0 1 0 4 1 2 0 1 2 1 . [ 2 ] 王景辉 , 师卫. 嵌入式软 P L C技术研究[ J ] . 科技情报开发 与经济 , 2 0 0 7 5 2 0 8 2 0 9 . [ 3 ] 王金 辉. Vx Wo r k s嵌 入 式实 时 操作 系 统的 原理 和 实 现 [ J ] . 无线 电工程 . 2 0 0 7 1 6 2 6 4 . [ 4 ] 孙凌宇 , 冷 明. 一种基于多哈希表 的堆式 动态存储管理方 法[ J ] . 井冈 山师范学院学报 , 2 0 0 3 6 4 3 4 7 . I m p l e me nt a t i o n 0 f S t a n d a r d Da t a I nt e r f a c e 0 f C0 De S y s - b a s e d S o f t PLC S HEN Ch a o ,LONG Xi n ,HUANG B0 3,ZHAN Ju n ,PANG W e i 1 .Col l e ge o f I n f o r m a t i o n En g i ne e r i n g,Xi a n g t a n Un i v e r s i t y,Xi a n gt a n 4 t 1 1 0 5,Ch i n a;2 . XEM C W i n d p o we r Co .,Lt d .,Xi a n g t a n 4 1 1 1 0 5,Ch i n a ; 3 . Ch a n g s h a J i nb ol i a n I n f o r ma t i o n Te c h n o l o g y Co .,Lt d .,Ch a n gs h a 41 0 0 0 0,Ch i n a Ab s t r a c t A g e n e r a l s t a n d a r d d a t a i n t e r f a c e i s r e a l i z e d f o r s o f t P LC b a s e d o n Vx W o r k s o p e r a t i n g s y s t e m a n d Co De S y s d e v e l o p me n t e n v i r o n me n t . r h e i n t e r f a c e i s i mp l e me n t e d i n t h e s y s t e m s o f t wa r e l a y e r ,u s e r s c a n o p e r a t e o n v a r i a b l e s t h r o u g h t h e v a r i a b l e n a me .A t r a n s p a r e n t wa y i s s u p p l i e d f o r t h e u p p e r u s e r s t O a c c e s s t O d a t a . Th e v a l i d i t y a n d r e a l t i me p e r f o r ma n c e o f t h e i n t e r a c t i v e d a t a i s v e r i f i e d b y e x p e r i me n t s ,a n d i t h a s b e e n s u c c e s s f u l l y u s e d i n t h e ma i n c o n t r o l l e r o f MW wi n d g e n e r a t o r . Ke y wo r d s s o f t PL C;Vx W o r k s ;C o De S y s ;s t a n d a r d d a t a i n t e r f a c e ;Ha s h t a b l e 学兔兔 w w w .x u e t u t u .c o m
展开阅读全文