资源描述:
l 匐 秒 似 虚拟P L C 仿真系统中兼容P MW文件的研究和实现 I m pl em ent at i on of com p at i bl e PM W fil e f or v i r t ual PLC s i m ul a t i on s yst em 李涛涛,何汉武,胡兆勇,黄永飞 L I 1 _ a O - t a o ,HE Ha n WU ,HU Zh a o . y o n g ,HUANG Y o n g . f e i 广东工业大学 机电工程学院,广州 5 1 0 0 0 6 摘要;针对虚拟P L c 仿真系统兼容性不足的问题,论文研究了如何读取并运行由三菱F X G P WI N C 软件生成的P M W文件。参照P M W文件中基本顺控指令的存储格式和编码规律,利用枚举、 推断、归纳总结和反复验证等方式 ,解读了步进指令及部分功能指令的存储格式和编码。在 研究了指令的解密算法的基础上,实现了P MW文件读取和识别,从而提升了仿真系统的兼容 性。 关键词虚拟P L C ;仿真系统;兼容;P MW 中国分类号T P 3 9 1 文献标识码;A 文章编号1 0 0 9 0 1 3 4 2 0 1 3 0 4 下 一0 1 0 2 0 3 D o i 1 0 . 3 9 6 9 / J . i s s n . 1 0 0 9 - 0 1 3 4 . 2 0 1 3 . 0 4 下 . 2 9 0 引言 随着 “ 十二五 ”规划 的到来,大力发展 自动 化装备是其 中一个重要 目 ” 。P L C 控制作为控制 领域 的 “ 排头 兵 ”,将充 当重要角色 。P L C技术 主要包含真实P L C 和软P L C 两大类;虚拟P L CII O 软 P L C,是利用计算机技术、嵌入式技术和高级编程 语言构造实现 ,国内外针对虚拟P L C 都进行大量的 研究 。 作者所在的课题组对虚拟P L C 也进行了研究, 并开发出一套仿真系统 ’ 。在 系统能够进行程序 的编辑 、调试、编译 和实现梯形 图同指令表 的转 换 ,生成并运行 自定义格式 的 “ . p l c ”文件 ,系统 已应用到本校的P L C教学中疆 】 。三菱F X系列P L C 程序开发软件F XGP WI N C 开发的P MW文件是一 种常用的P L C程序文件 ,将该类文件读取 到仿真 系统 中,可 以避免程序的重新编辑 ,缩短开 发时 间 ,提升 系统兼容性 。论文将对P MW文件 中指令 的存储格式及编码进行研究 ,进而实现系统对该 文件的读取并运行转化后的程序。 1 解析P MW格式文件中指令的存储 格式及编码 三菱P L C指令 按照功能特点可 以分 为基 本 顺控指令 、步进指令和功能指令 ;由这些指令构 成的P L C程序以二进制流的方式存放在P MW文件 收稿日期 基金项目 作者简介 中。为 了实现P MW文件的读取,首先应该对指令 的储存格式及编码进行分析。 1 . 1基本顺控指令存储特点分析 从参 考文献[ 1 0 】 可 以知道基 本指令 的储 存特 点 ,以LD指令为例 分析 ,如表 1 所 示 。A1 ~A4 代表存储指令的四个字节 ,按照实际储存顺序存 放 。在P MW文件 中, 由于指 令 以及 操作数 的不 同,每条基本顺控指令所 占据的字节数也不 同; 按照所 占据字节数分类可 以分为双字节指令、四 字节指令 、六字节指令,如表2 所示。由表可知 , 指令名的变化 是否存在上升下降沿检测 和操 作数的范 围的变化是引起指令所 占字节变化的主 要原因 ;这一规律对其余两类指令的解码将起 到 重要的作用 。 表1 L D 指令的存储结构 十六进制编码 、 、 \ 编码 A1 A 2 A 3 A 4 指令 \ LD X 2 4 X X L D Y} 2 5 X X LD T0 2 55 26 X X LD C0 . 2 5 5 2 E X X LD M 0 1 5 3 5 2 y X X LD M 8 0 0 o 一 8 2 5 5 2 F X X LD M 1 5 3 6 3 0 7 1 Az X X 0 1 C2 注表中8-y 、Z ≤D,“ 一 ”表示无存储 2 0 1 3 0 1 1 7 国家 自然科学基金项 目 5 1 2 7 5 0 9 4 ;省部产学研结合项 目 2 0 1 2 B 0 9 1 1 0 0 l 3 1 ;顺德区科技计划项 目 2 0 1 1 0 2 0 2 0 5 1 ;顺德区政府采购招标项 目 S D1 1 1 4 4 李涛涛 1 9 8 8一,男,硕士研究生,研究方向为虚拟P L C 仿真系统的研究与开发。 [ 1 0 2 1 第3 5 卷第3 期2 0 1 3 - 0 4 下 学兔兔 w w w .x u e t u t u .c o m 务l 訇 化 表2 部分基本指令按存储字节数分类 指令 目标元件 指令类型 L D, L DI , AND M1 5 3 6 3 0 7 1 四字节指令 l Q刚t 其他 双字节 指令 L D P , A NDP , oRP 所有 四字节 指令 AN B, 0R B, E ND 无 双字节指令 f s f I } cf A 四字节指令 RS T D 六字节指令 Y, M0 一 M1 5 3 5 双字节指令 0U T T , C 六字节 指令 P L S / P L F Y, MO 一 3 0 7 1 四字节 指令 1 . 2部分功能指令及步进指令的存储格式及编码 解析 从P MW文件格式只知道基本顺控指令 的存储 特 点,而对功能 指令并 不得 而知 。部分功 能指令 / B S F T L / S F T R / Z R S T 等 常应用在P L C 程序 中, 能够提高程序 的效率 ;因此获知功能指令 的储存 结构将有利于系统读取更多的P MW文件 。 下面将以S F T R指令为例 ,以枚举的方式改变 操作数 ,读取相 应的二进制存储代码 ,以十 进制 的方式放入数组 中,数组 的存储代码放入数据 表 格 ,如表3 所示 。由于S F T R指令 的第二个操作数 和第一个操作数 的取值规则完全一致 ,因此只对 列 出操作数一的存储代码 。 由下表信息归纳总结可知 1 每条S F T R指令 占据1 8 个字节 ,其中前两个 字节 代表指令 名,后面每 四个字节表示一个操作 数 。0 x 5 4 0 0 代表S F T R指令 。 2 A / A。 表示操作数的类型,其中0 x 4 代表x 元件 ,0 x 5 代表Y元件;通过另外的实验知【 0 x 8 0 x d ] 代表M0 1 5 3 5 ,[ 0 x 2 8 0 x 2 d 】 代表M1 5 3 6 3 0 7 1 , 0 x f 代表M8 0 0 0 8 2 5 5 ,【 0 x 0 0 x 3 ] 代表S 元件。A3 A5 / A7 通过算法转换后得到操作数的编号。 3 A1 2 / A1 6 区分n l / n 2 类型 ,0 x 8 0 表示K,0 x 8 2 表示H;Al 1 A1 3 , A1 5 Al 7 转换后得到K 或H的编号 。 由此 ,可以得 出S F T R指令的存储格式及十进 制编码为图1 ,操作数所 占字节的内容是以 “ S F -I R Y x My Kz Km”为例 ,操作数类型依次为Y、M、 K、K,操作数编码为X 、Y 、Z 、m。 将存储代码 中的相应字节 转化得到操作数 编 号,转换算法如下 厂 xa 3 , A3 转换成八进制得到 a 3 I r A 9-8 x 2 5 6 A 7, 8 A 9 13,M 015 3 5 J y { 8 0 0 0 A 7, l5 ,M 8 00 0 .82 55 l L A 9 4 0 2 5 6 A 7 1 5 3 6 , 4 0 A 9 4 5 , M1 5 3 6 3 0 7 1 I z A13 x 2 5 6 A 1 1 mA1 5 x 2 5 6 A1 7 为 了 验 证 结 论 是 否 正 确 ,再 次 获 取 到 了 “ S F r R Y1 4 M1 0 2 9 K1 5 4 3 K2 3 ”指令的存储代码, 编码如下 8 4 0 1 2 1 3 2 5 1 2 8 - 5 1 3 2 1 2 1 2 8 - 7 1 2 8 6 1 2 8 2 3 1 3 0 0 . 1 2 8 ;按照上面转换算法 ,代入相 应字节的代码得到结果x 1 2 ,y 1 0 2 9 ,z 1 5 4 3 , m 2 3 ;则指令为S F T R Y1 4 M1 0 2 9 K1 5 4 3 K 2 3 。验 证结果和实际的指令相符合 ,所以结论成立。 按 照同样 的方 法,对S F T R P / S F T L / S F T L P 指 令的存储格式及编码进行解析 。结果显示S F T R P / 表3 SF T R 指令的储存代码 A1 A2 A3 A d A 5 AI l A1 2 Al 3 A1 4 A1 5 Al 6 Al7 Al 8 S F TR X1 2M 1 2H8H2 8 4 O 1 0 1 3 2 4 1 2 8 8 1 3 0 0 1 2 8 2 1 3 O O 1 28 SFT R X3 7M l 2H8H2 8 4 O 31 1 3 2 4 1 2 8 8 1 3 0 0 1 2 8 2 1 3 0 O 1 28 S Fr R Y 1 2X l 2K 1 OH2 8 4 0 1 0 1 3 2 5 1 2 8 1 0 1 2 8 O 1 2 8 2 1 3 0 0 1 2 8 S FTR Y2 4X 1 2K 1 OH2 8 4 0 2 0 1 3 2 5 1 2 8 1 0 1 2 8 0 1 2 8 2 1 3 0 0 1 2 8 S Fr R M 2 3Y1 2K2 5 6K2 8 4 0 23 1 3 2 8 1 2 8 0 1 2 8 1 1 2 8 2 1 2 8 0 1 28 S Fr R M 1 5 3 5 M 1 2 K2 I 2 8 4 O 2 5 5 1 3 2 l 3 1 2 8 1 0 1 2 8 O 1 2 8 2 1 2 8 O 1 28 S 兀 R M 1 5 3 7M 1 2 K1 O K2 8 4 0 1 1 3 2 4 0 1 2 8 1 0 1 2 8 O 1 2 8 2 1 2 8 0 1 2 8 S Fr R M 3 0 71 M 1 2K 1 OI 2 8 4 O 2 5 5 1 3 2 4 5 1 2 8 1 0 1 2 8 0 1 2 8 2 1 2 8 O 1 2 8 SF 1 R M8 o o1M l 2K1 0K2 8 4 0 1 1 3 2 1 5 1 2 8 1 0 1 2 8 O 1 2 8 2 1 2 8 O 1 2 8 8 4 『 0 l A |l 1 3 2 I 5 I 1 2 8 l A 7 I 1 3 2 l A g l 1 2 8 I A l l l 1 2 8』 A 1 3 l 1 2 8 l A 1 5 f 1 2 8 I A 1 6 I 1 2 8 指令名 操作数1 D . 操作数2 s . 常数’ 1 n 1 常数。2 n 图1 S F T R指令的存储格式 第3 5 卷第3 期2 0 1 3 0 4 下 1 1 0 3 1 学兔兔 w w w .x u e t u t u .c o m l 匐 化 S F T L / S F T L P 指令 同S F T R指令的存储格式 完全相 同;在 操作 数相 同的前提 下 ,存储 代 码 只有 前 两个字节不同,S F T RP 的前两个字节为0 x 5 4 1 0 , S F T L的前两个字节为0 x 5 6 0 0 ,S F T L P 的前两个字 节为0 x 5 6 1 0 。这也进一步验证 了前两个字节为指 令名的编码 。 解读 出Z R S T 指令为十字节指令 ,前两个指令 编码表示指令名 ,后面每四个字节代表一个操作 数 。步进指令S T L的存储格式 十进制编码 如 图2 所示 ;S T L 指令为双字节指令,第一字节的前四位 B 0 1 5 用于判断指令 名,状态元件S 的编码 由B1 、 B 2 、B 3 转换得到。 t] S T L S x 的转换算法为 x B1 2 5 6 B 2 1 6 B 3 f 8 B1 ≤1 3 第一字 节 第二 字节 图2 S T L 指令 的存储格式 2 P MW文件的读取和识别 已知P MW文件结构,利用C 的文件操作函 数对P MW文件进行解析 。具体实现的部分代码如 下 CFi l e PMW Fi l e ; , / 实例化一个C F i l e 对象 ,用于存储P MW文件 的信息 P MWF i l e .O p e n s z G e t N a m e , C F i l e m o d e R e a d lC F i l e t y p e B i n a r y ;/ / 打开指定路径下的文件 P M W F i l e. S e e kP M W I N S T O F F S E T . C F i l e b e g i n ; , / 设置偏移量,跳过与指令无关的信息 P MWF i l e . Re a d i n s t , 2 ;/ / 读取两个字节的信息 到i n s t 数组 P MW文件的读取流程如图6 所示。 3 实验验证 在F XGP WI N. C软件 中编写一个测试程序 , 程序 中包含基本顺控指令、步进梯形指令和S F T R 等功能指令。具体验证过程如图4 所示。 奢 墨 含 各 类 指 令 的 测 试 程 序 堡 . 试 的 w 寸 件 , 开 “ F 旦 尊 塞 一 丢 仿 真 另 打 开 P 删 文 件, 台 ” , 验 文件的运行 豆杀茬系骁卉发环境中 图4 验证流程图 [ 1 0 4 1 第3 5 卷第3 期2 0 1 3 - 0 4 下 将 “ 读取 测试 . p mw”文件读入到 虚拟P L C仿 真系统 中,转化得到 “ 读取测试. p l c ”后运行 ,验 证结果如图5 所示 。 a 在F X G P - WI N - C 编写P L C 程序 b 读取P MW文件转化后运行 图5验证结果 图6 P WM文件读取流程图 4 结论 论文 中 ,为 了提升虚拟P L C 仿 真系统 的文件 兼容性 ,对三菱的P MW程序文件的格式进行的解 析 。分析 了P L C基本顺控指令的存储规律 ,在此基 础上解读了步进指令及部分功能指令的存储格式 和编码 ;最终实现 了对P MW文件 的读取 ,转换后 的P MW程序文件能在虚拟P L C中运行 。在兼容性 方面 ,本 系统还有很多需要完善的地方 ,例如 , 【 下转第1 1 6 页】 学兔兔 w w w .x u e t u t u .c o m P r i v a t e k e y p r i k e y P r i v a t e k e y i n . r e a d o b j e c t 0; my S i g . i n i t S i g n p r i k e y ; my S i g . u p d a t e i n f o ; b y t e [ ] s i g R e s u l t my S i g . s i g n ; } 认证模块根 据用户名和 口令在证书库中获取 数字证书p c e r t . c e r ,利用数字证书中的公钥对收到 的数字签名s i g Re s u l t 进行验证 ,同存放于i n f o [ ] 数 组 中的R b 随机数进行 比较 ,得到验证结果 ,部分 关键代码如下 P u b l i cb o o l e a nv e r f y t r y { O b j e c c t l n p u t s t r e a m i n n e w o b j e c t l n p u t s t r e a m n e w F i l e l n p u t S t r e a m“ p c e r t . c e r ” ; Pub l i c k e y p u b k e y Pub l i c k e y i n . r e a d o b j e c t O; my S i g . i n i t Ve r i f y p u b k e y ; my S i g . u p d a t e i n f o ; b o o l e a n v e ri f y my S i g . v e ri f y s i g R e s u l t ; } 4 结束语 以P KI 为基础的公钥认证技术是 当前认证技术 的主流,本文设计的基于P K I 的电子政务身份认证 系统 ,可以有效地保 护用户的身份 安全和应用 系 统的数据安全,系统采用J a v a 语言实现 ,满足了电 子政务信息安全的应用需求 。 参考文献 [ 1 】刘 建伟, 王育 民. 网络 安全一 技术与 实践【 M】 . 北京 清华 大 学 出版社, 2 0 0 7 8 9 . 9 2 . 【 2 】邓志 宏, 颜君彪 , 蔡悦华 . 基于P K I 的网络信息安全模 型的 研 究与设计 【 J 】 . 计算机工程 与设计 , 2 0 0 7 , 2 8 2 3 4 9 . 3 5 0 . [ 3 1 Hou s l e y R, Pol k W , S ol o D. I nt e r ne t X. 50 9 p u bl i c Ke y i n f r a s t r u c t u r e , c e r t i f i c a t e a n d CRL P r o f i l e [ S] . RF C2 4 5 9 ,2 0 0 9 . 【 4 】王 金 伟 , 马 希 荣 , 孙 德 兵 . 基 于 PKI 和u盘 的 身 份 认 证 系 统 的 设 计 与 实 现 【 J 】 . 计 算 机 工 程 与 设 计 , 2 0 1 1 , 3 2 7 2 2 2 9 2 2 3 0 . 童‘ 童‘ 量● 囊● 蠡‘ 矗‘ 矗‘ 蠡‘ 童‘ 重I j蠡I 童‘ 蠡‘ 蠡‘ 矗‘ 童‘ 童‘ 矗‘ 童‘ 童‘出 蠡‘ 童‘ 童‘ 【 上接第1 0 4 页】 实现 系统开发的程 序能够被其他 系统识别 ,系统 能够进一步读取 由G X D e v e l o p e r 等软件开发的P L C 程序等。 参考文献 【 1 】侯隽, 曹 昌. 高端 装备 制造迎 来风雨 时代 【 J ] . 中国经 济周 刊, 2 0 1 1 , 1 3 8 3 9 . 【 2 】仪维. 软件化P L C平台的研究和开发【 D】 . 山东 山东大 学, 2 0 0 5 3 2 3 3 . 【 3 】C. G. HABA. Ex t e n d i n g t h e Us e o f P L C S i mu l a t o r S o f t wa r e i n S t u d e n t L a b o r a t o r y W o r k s [ J ] . Ad v a n c e s i n E l e c t r i c a l and C o mp u t e r E n g i n e e r i n g , 2 0 1 0 , 1 0 1 8 4 8 9 . 【 4 】吴玉香, 周东霞, 林锦赞. 嵌入式软P L C系统的研究和实现 【 J 1 . 计算机工程. 2 0 0 9 , 3 5 1 0 2 3 5 . 2 3 7 . 【 5 】叶力, 郑萍. 基 于G X与MC GS 的全虚拟P L C 控制 系统研究 [ 1 1 6 ] 第3 5 卷第3 期2 0 1 3 0 4 下 [ J 】 . 中国现代教育装备, 2 0 0 7 , 1 2 3 9 . 4 1 . 【 6 】段玉 涛, 何汉武, 胡兆勇. 面 向虚拟P L C的硬件通 讯系统的 开 发与实现 [ J ] . 制造 业 自动化 , 2 0 1 0 , 3 2 1 2 9 0 . 9 4 . 【 7 】胡兆勇, 何汉武, 秦兵. 基于Vi s u a l c 的虚拟P L C仿真软 件 开发【 J 1 . 广东 工业大学学报 , 2 0 0 9 , 2 6 1 4 0 . 4 3 . 【 8 】HU Z h a o y o n g , HE Ha n WU, GUO Z h o n g n i n g , CHENG Si yua n.Appl i ca t i on of Pr obl e m Ba s ed Lea r ni ng t o P L C E x p e ri me n t [ A ] . S p ri n g I n t e r n a t i o n a l Co n f e r e n c e o n E n g i n e e ri n g E d u c a ti o n [ C ] . S c i e n t i fi c R e s e arc h P u b l i s h i n g , 2 01 2 4 9 2 . 4 9 5 . 【 9 】胡兆勇, 何汉武, 段玉涛, 刘漫丹. 面向三菱F X系列的虚 拟P L C创新实验【 J 】 . 实验室研究与探索, 2 0 1 0 , 2 9 1 0 2 7 0 2 7 3 . 【 1 0 】 三菱P L C 之 P MW 文件 的格式 说 明【 E B/ O L】 . h t t p / / b b s . z y x mc u . c o m , 2 0 1 1 - 6 21 . 学兔兔 w w w .x u e t u t u .c o m
展开阅读全文