一种基于指令向量表的软PLC系统实现方法.pdf
2 0 1 3年第4期 工业仪表与自动化装置 8 5 种基 于指令 向量表 的软 P L C 系统 实现 方法 杨跃斌 , 吴旭光 , 牛云 , 莫楠 西北工业大学 航 海学院,西安 7 1 0 0 7 2 摘要 提 出了一种基于指令向量表 的嵌入式软 P L C系统的 实现方法。系统由开发 系统和执行 系统构成。开发系统所编辑的梯形图 L A D 、 语句表 S T L 形式的P L C程序将被转换生成为中间 代码。执行 系统建立一个指令向量表 , 按指令识别码储存 中间代码指令 函数的入 口地址, 使解释型 软 P L C系统取指后可以对 中间代码的指令执行函数进行直接快速跳转 , 从而提高解释 型软 P L C的 执行效率, 保证了解释型软P L C执行系统的实时性, 使解释型软 P L C执行 系统具有接近于编译型 软 P L C执 行 系统 的执行 速度 。 关键词 嵌入式系统; 指令 向量表 ; 软 P L C; 梯形图; 解释型 中图分类号 T P 2 7 3 文献标志码 A 文章编号 1 0 0 0 0 6 8 2 2 0 1 3 0 4 0 0 8 5 0 3 An i mpl e me nt a t i o n me t ho d o f s o f tPLC s y s t e m ba s e d o n t h e i ns t r uc t i o n v e c t o r t a b l e YANG Yu e b i n,W U Xu g u a n g,NI U Yu n ,MO N a n S c h o o l o fMa r i n e E n g i n e e r i n g, N o h w e s t e r n P o l y t e c h n i c a l U n i v e r s i t y , X i a n 7 1 0 0 7 2 ,C h i n a Ab s t r a c t I t p r o p o s e d a mo r e e f f i c i e n t me t h o d t o i mp l e me n t a n e x p l a i n t y p e s o f t P LC s y s t e m b y c r e a t i n g a n i n s t r u c t i o n v e c t o r t a bl e.Th i s ki n d o f e mb e d de d s y s t e m c o n s i s t s o f d e v e l o pme n t s u bs y s t e m a nd e x e c u t i o n s u b s y s t e m.T h e l a d d e r d i a g r a m L A Da n d s t a t e me n t l i s t S T L e d i t e d b y t h e d e v e l o p m e n t s u b s y s t e m wi l l b e c o n v e r t e d a n d g e n e r a t e d a s i n t e r me d i a t e c o d e . T h e e x e c u t i o n s ub s y s t e m s e t u p a n i n - s t r u c t i o n v e c t o r t a b l e . Th a t t a b l e s t o r e s t he e n t r y a d d r e s s o f i ns t ru c t i o n f u n c t i o n s f o l l o wi n g t h e o r d e r o f t h e i r I D .I t c a n m a k e i n s t r u c t i o n f u n c t i o n s j u m p m o r e d i r e c t l y a n d m o r e q u i c k l y a f t e r i n s t ruc t i o n f e t c h i n g . Th e s e me t h o d s wi l l e n s u r e r e a lt i me p e r f o r ma n c e a nd e f f i c i e n c y o f t h e e x p l a i n t y p e s y s t e m.Th e e x e c u t i o n s p e e d o f s u c h a e x p l a i n t y p e s y s t e m i s c l o s e t o t h a t k i n d o f c o mp i l e d t y p e s y s t e m. Ke y wo r ds e mbe d d e d s y s t e m ;i n s t r u c t i o n v e c t o r t a b l e;s o ft P LC;l a d d e r d i a g r a m;e x p l a i n t y pe 0 引言 传统 P L C经过几十年的发展, 已经成为一项成 熟技术 , 它以其高速度 、 高性能 、 高可靠性在工业控 制领域得到了广泛的应用 J 。但传统 P L C由于国 外厂商长期垄断等原因, 存在价格高昂, 通用性差, 可扩展性不强等 缺点 。嵌人式软 P L C控 制系统集 成了许多现代先进技术, 它把 P L C功能、 P I D调节功 能 、 点位运动控制 功能 、 测量功能 、 现场总线通信功 能和编程技术有机地结合在了一起。基于嵌入式系 统并符合 I E C 6 1 1 3 1 3标准的软 P L C系统是嵌入 式系统与 P L C在现代工业控制中结合发展的必然 收稿 日期 2 0 1 3 0 21 8 作者简介 杨跃 斌 1 9 8 6 , 男 , 广西钦州人 , 全 日制工程硕 士, 主 要从事控制理论与控制工程方向研究。 产物。在 自动化控制领域 , 采用嵌入式软 P L C系统 代替传统硬 P L C产品已经成为一个趋势_2 J 。 软 P L C系统根据编程指令 的执行方式不同, 可 分为解释型和编译型。相 比而言 , 解释型执行方式 具有灵活性高, 多平台适用性强, 实现方式简单, 方 便代码加密和功能扩展等优点。但通常的解释型执 行方式对上位机开发系统生成的中间代码 的解释机 制过于繁琐 , 大大影响 了系统 的执行效率 、 实时性 , 使得这种方案无法达到实用要求。 为了提 高解释型软 P L C系统执行 效率低 的问 题 , 该文提 出 了一种 基 于指令 向量表 的嵌入 式软 P L C系统实现方案。通过将所有中间代码的指令执 行函数 的入 口地址 指令 向量 存放到一个类似于 中断向量表 的指令 向量表 中, 可以快速地寻址到指 令向量的存放单元 , 从而将程序跳转到指令执行 函 8 6 工业仪表与自动化装置 2 0 1 3年第 4期 数的人 口地址。这种方法能有效提高中间代码的执 行效率 。 该文也将通过性能对 比实验 , 验证系统方案 的 执行效率接近编译型系统方案的执行效率, 完全能 够达到实际工业控制场合对实时 性的应用需求 。 1 系统结构 嵌入式软 P L C系统的结构框图如图 1 所示 。 ⋯⋯⋯⋯⋯⋯⋯⋯⋯一 茇 ’ I E C 6 l l 3 1 - 3 编程环境 编 辑器 编译 器 湄试 器 通 接 口 R S . 2 3 2 等 I通 言 接[ ] R S , 2 3 2 等{ 电源管理 片内F L AS H 时钟系统 A R M C AN等通信 微控制器 嵌套 向量中断 扩展接[ ] 控制器 N VI C 开 关 景I/ O 接口 模 组I 模 拟 最l/O 接 口 模 组 嵌入式 系统 端软 P L C执 行 系统 、~ ⋯.⋯ .一⋯一一 一一一 ⋯ 一一⋯⋯⋯⋯一⋯-一__⋯ _,, 图 1 软 P L C系统结构框图 该软 P L C系统 由开发 系统 和执行 系统两部分 构成 。开发 系统运行于 P C上位机 , 主要用于实现 梯形图编辑功能, 基于“ 节点势能” 算法的梯形图逻 辑解算功 能和对执行 系统 的通信监控功能_ 3 。执 行系统运行于 A R M嵌 入式系统 , 主要用 于实 现下 载并存储开发系统所生成的中间代码指令, 执行梯 形图逻辑 , 建立软 P L C寄存器与输人输 出接 口映射 关系, 上传软P L C寄存器实时状态等功能。 2 执行系统的设计 该软 P L C执行系统需要解决指令代码解 释算 法和梯形图逻辑执行两大问题。 2 . 1 指令代码解释算法 当需要下载 P L C指令 时, 开发系统与执行 系统 的通信 由开发系统发起 , 执行系统从开发系统下载 中间代码时 , 通信数据通过 M o d b u s R T U协议 1 3号 功能 编程功能 码帧格式封装 , 协议帧格式以及通 信数据帧格式如图 2所示。若执行 系统执行成功 , 将返 回功能码为发送数据的功能码, 否则 , 返回数据 功能码为发送数据的功能码最高位置 1 后的值。 引功能 码f 数 据长 度 内 部功 能 码 内 音 _j 包号 通 信数 据 C R C 校 验 1 1 3 I 2 字节 2 字节 2 字节 2 字节 、 、~ ~ , ~ 指令 1 l 指令 志码 操作数个数 操作数 l I⋯ 操作数 ⋯ I ⋯ } 字节 1 字节 4 字节 f 4 字节 l 一_ 一。_ , 一’一 一一 一。 ‘‘。 ’ 一一I_ 一 ., 一_一 一 若操作数为寄存器。操作数最高位为 l 格式如下 寄存器宽度 寄存器识别号 f 地址偏移量 位寻址号 1 字节 字节 I 1 字节 1 字节 图 2 协议帧格式与通信数据帧格式图 中间代码下载过程中 , 执行 系统将从上位机开 发系统接收到的中间代码数据烧写到片内 F l a s h内 预设的中间代码数据区中。当执行系统执行梯形 图 逻辑时将通过读取该区域数据来实现。 由通信数据帧格式可知, 中问代码中的每一条 指令都含有一个指令标 志码和若干个操作数 也可 不含操作数 。指令标志码将所论述 的指令 向量表 对指令的唯一识别标志 。 指令向量表是一种类似于中断向量表的指令执 行函数人 口首地址表。系统采用函数指针数组的数 据结构为每一条指令分配一个指令标志码和 4个字 节的地址存放空间。执行 中间代码的过程中, 执行 系统从中间代码数据区中读取到指令的指令识别码 后 , 可以将该识别码作为指令 向量表基址 的偏移量 获得该指令 的指令执行 函数入 口首地址 的存放 空 间, 从而通过直接跳转到其执行 函数入 口首地址的 方式来实现指令执行函数 的快速跳转 。指令 向量表 的数据结构如图3所示。 存储地自 E 存储 内容 4字节 跳转 F u n c P t r [ 0 ] v o i d l第0号指令入口地址 *_F u n c P t r [ 1 ] v o i d l 兰 呈 堂全 垫 F u n c P t r [ 2 ] v o i d I 第2 号指令入口地址 第 号指令入 口地址 v o id _L D v o i d v o i d _L DN v o i v o id _L DI v o i d 第 号函数 图 3 指令 向量表数据结构 图 由于不同指令的操作数个数并不一致, 通过直接 的函数参数传递方式无法有效的完成操作数的参数 传递, 因此执行系统构造了一个全局操作数暂存数据 区域。所有指令 的操作数将按照指令的先后顺序存 放在这个区域中, 指令函数按照先后顺序通过一个全 局指针变量来对操作数进行寻址读写。每个操作数 都默认为 3 2位数据, 即 4 个字节 , 所以操作数之间的 偏移量均为 4 , 函数对一个操作数读写完后应对该指 针加 4来得到下一个操作数的地址 。当执行系统把 梯形图逻辑的所有的指令执行完成后 , 应把操作数暂 存区指针和指令识别码暂存区指针重新初始化为最 1 0 0 工业仪表与 自动化装置 2 0 1 3年第 4期 4 应用中的问题及改善 在动力圆盘剪工作时, 机组运行速度大于圆盘 剪的转动速度时会 出现板带边浪情况, 究其原 因是 当带钢运行速度大于 圆盘剪剪刃旋转速度时 , 尽管 圆盘剪刀片也在剪切, 但必然有部分带钢剪切边不 是由剪切力剪切完成的, 而是沿带钢方向的纯撕裂 , 带钢运行速度与圆盘剪刀片旋转速度差别越大 , 撕 裂力就越大。撕裂力 的作用点仅为带钢厚度 , 没有 其他支撑 , 因此极易使带钢边部发生变形 , 造成塑性 变形而出现边浪 。 通过前文介绍 , 可 以知道圆盘剪本身有独立 的 P L CWi n A C M P, 它作为软件嵌入在触摸屏 M P 1 7 7 中。在主 线 P L C将 剪刃 转动 速度 下 发给 圆盘剪 P L C的同时 , 也将这个速度值传给主线的传动系统 , 二者同时响应 , 但剪刃 的转动速度变化需要经过圆 盘剪 P L C的一个扫描周期才能生效。 根据西 门子官方的数据及现场测算 , 可以推出 实际应用时 Wi n A C MP十MP I 7 7的扫描周期 7 1 在 2 0 5 0 i n s 之间 , 因此在生产时, 剪刃转动速度响应 总是有一个扫描周期的滞后 , 尤其在机组加速期间, 会造成机组速度总是大于圆盘剪的转动速度 , 导致 容易出现边浪 , 如图 3所示 , 速度差 A VT t g c 其 中 为加速斜率 在加速期间一直存在。 一 , 图3 速度差与扫描周期 为了改善这一问题 , 现场实际应用中 , 在不改变 硬件 的前提下 , 采取 2个措施 , 如图 4所示 。 1 在切边期间, 减小机组加速斜率 , 改为 口; 2 将圆盘剪的剪切速度设定微大于主线速度 , 现场 增 加 l % 的 补 偿。 即 圆 盘 剪 速 度 V , V 1 11 % 。 这样 , 大幅降低 了加速期间主线与圆盘剪之问 的速度差。改善后 , 现场生产状况 良好 , 切边浪的问 题得到很好 的控制。 ’ _7 _ 一 , 图4 改善后的速度差 5 结束语 首钢冷轧重卷机组引进 的圆盘剪 , 在控制系统 设计上较为先进 , 符合 自动控制 的发展趋势 , 并且控 制精度非常高。然而由于是独立的控制系统而且剪 刃带传动 , 造成了速度不匹配问题 , 该文所述改善措 施在现场应用中是有效 的并且相对简单的。如果想 从根本上解决此类 问题 , 可以采 取如下两种方案 1 将剪刃传动从切边剪控制系统分离 , 改 由主线传 动统一控制 ; 2 取消圆盘剪的 P L C, 将所有对圆盘剪 的控制纳入主线控制 中。 参考 文献 [ 1 ] 李文翼. 冷轧板带切边浪形的成因分析和改进途径 [ J ] . 宝钢技术, 2 0 0 4 4 1 6 . 上接第 8 7页 形图逻辑共有 6条指令 , 所以解释型方案平均每条 指令 的执行时间约为 1 . 1 2 tx s , 而编译型方案则为 0 . 5 0 Ix s 。采用该文所论述的解释型软 P L C执行系 统每条指令的执行 时间和编译型软 P L C执行系统 仅有 0 . 6 2 t x s 的差距 。 4 结论 该文设计并实现 了一种基 于指令 向量表 的软 P L C系统 , 同时提出了一种有效提高解释型软 P L C 实现方案的执行效率的方法 。经过实验验证 , 该套 系统能够完成梯形图逻辑的开发 、 解算和执行 , 并具 有十分高的执行效率。同时 , 该系统具有灵活的系 统架构 , 有利于代码加密和功能扩展。 参考文献 [ 川黄延延, 林跃, 于海斌. 软 P L C技术研究及实现[ J ] . 汁 算机工程 , 2 0 0 4 , 3 0 1 1 6 51 6 7 . [ 2 ] 郝伟. 基于 A R MIx C / O S I I 的软 P L C关键技术研究 [ D] .西安 西北工业大学 , 2 0 1 2 . [ 3 ] 魏晓晴, 吴旭光, 牛云, 等. 软 P L C开发系统的设计与 实现[ J ] . 制造业自动化, 2 0 1 2 , 3 4 1 8 1 1 4~1 1 6 . [ 4 ] 周峰, 王新华, 李剑峰, 等. 软 P L C技术的发展现状及 应用 前 景 [ J] .计 算 机 工 程 与 应 用, 2 0 0 4 , 4 0 2 4 5 7 6 0 . [ 5 ] 李左章 , 周云飞 , 胡建中, 等. 一种基于 WC的内嵌式 P L C的实现方法[ J ] . 机械与电子, 2 0 0 0 5 3 6 . [ 6 ] 嵌入式实时操作系统 C / O SI I [ M] . 2版. 邵贝贝, 译. 北京 北京航空航天大学出版社, 2 0 0 3 .