专业的微特电机产品发布平台
用户名: 密码: 注册
设为首页 加入收藏 联系我们
免费注册 企业免费建站
新技术论坛 会员产品发布
TB6600QQ群:70241714   步进电机论文   六轴工业机器人解决方案  
步进电机     驱动器     控制器     马达IC     伺服电机     无刷直流电动机     微特电机文献     工控器件     运动控制新产品     六轴工业机器人    
  六轴工业机器人应用案例  
  混合式步进电机选型手册  
  步进电机配套行星减速器  
  步进电机应用网  
  三轴桌面机械臂参数介绍  
  六轴工业机器人应用参数  
  东芝TB6600HQ/HG芯片  
  tb6600hq步进驱动芯片  
  论坛热帖  
  步进电机应用资料  
  价格****的86步进电机  
  60W无刷直流电机  
  100W无刷直流电机  
  48V,250W无刷直流电机  
  48V,550W无刷直流电机  
  步进驱动器芯片LV8731V  
  42/57直线T型滚珠丝杆电机  
  有霍尔直流无刷控制器  
  3相2轴步进驱动器  
  步进电机论坛  
  ZM-6618直流无刷驱动器  
  无刷直流电机选型  
  SCM6716MF直流无刷驱动芯片  
  86步进驱动器2HD8080  
  北京时代超群公司  
  稀土永磁直流力矩电机  
  永磁直流力矩电机  
  86双出轴电机  
  伺服电机知识  
  关于步进电机转速  
  步进电机转矩与功率换算  
  关于步进电机控制  
  关于步进电动机驱动  
  tb62209fg的开发应用  
  tb6588fg的应用资料  
  ET-DS100C型取断锥机  
  五自由度取断锥机  
  步进驱动器及产品  
  步进控制器产品  
  ****马达IC产品  
  无刷直流电机及控制器  
  微特电机论文  
  马达IC应用论文  
  步进电机网工控企业会员  
  步进电机网数控企业会员  
  步进电机网新闻动态  
  步进电机网会员产品信息  
  现货销售TB62214FG  
  现货销售三洋芯片LV8731  
  2轴步进驱动器ZD-8731-D  
  57步进驱动器外壳  
  时代超群无刷直流电机  
  步进电动机制造****技术  
  减速步进电机  
  无刷直流电机  
  无刷直流减速电机  
  35减速步进电机  
  减速步进电机系列产品  
  单轴步进电机控制器  
  多轴步进电机控制器  
  ******的步进控制器  
  信浓步进电机  
  电机联轴器  
  更多>>  
 
一种在Windows操作环境下采用VC++开发工具设计的嵌入式软PLC编程系统
 
 
嵌入式软PLC编程系统的设计
吴玉香,郭建勋,周建香
华南理工大学自动化学院,广东广州54064
 
 
 
 
摘    要:完成一种在Windows操作环境下采用VC++开发工具设计的嵌入式软PLC编程系统。采用面向对象的设计思想,提出了描述软PJ,C梯形图元件的数据结构,以及对梯形图元件集合存储和交互的方案。该系统针对vc++的Documenf/View的结构,设计了软PLC编程系统的软件结构,分为编辑、编译和仿真等功能模块,且结合相应的算法买现,并重点介绍了梯形图程序的编辑和编译扫描原理:为低成本高效率实现嵌入式软PLC编程系统提出了新方案,也为软件开发人员提供一种软件设计的新思维。
关键词:软PLC;梯形图;编辑;编译;仿真
中图分类号:TP 273    文献标识码:A
1引言
    随着控制技术向网络化、智能化和开放式发展,传统PLC逐渐暴露出许多不足,主要表现力技术封闭,造成了各生产厂商的PLC产品互不兼容,且编程开发方法差别很大,技术专门性很强,用户必须经过长期培训才能掌握其中一种产品的开发方法,这些问题制约了传统PLC的快速发展。随着计算机科学的发展和工业控制的IEC61131国际标准的制定,出现了用软件方式实现传统PLC控制功能的软PLC技术。
    软PLC具有符合现代工业控制技术的优点,体系结构开放,支持多种硬件环境,解决了传统硬PLC互不兼容的问题。软PLC把控制运算的功能封装在软件中,具有传统PLC的功能,可在计算机操作系统中实现程序的编辑、运算、编译、存储等功能,具有编程语言标准化、控制功能模块化、硬件配置灵活等特点Windows环境下引入vc++开发工具,用vc++强大的软件功能,使人机交互界面更友好,由于vc++固有的面向对象机制,可方便地设计梯形图数据结构,并结合相应的算法,完成软PLC编程系统设计。本文给出编辑、编译和仿真模块。
2嵌入式软PLC系统的总体框架
    嵌入式软PLC主要由编程系统和运行系统组成。编程系统进行梯形图的编辑、指令的解析以及生成目标代码;运行系统执行目标代码,实现控制目的。
本文介绍的嵌入式软PLC编程系统其总体架构,如图l所示。
    嵌入式软PLC编程系统的编程语言基于国际电工委员会发布的IEC61131-3国际标准,是一个通用的开发环境,主要由编辑、编译、仿真和通信4大模块组成。其中,编辑模块提供用户程序开发环境;编译模块实现对用户程序的扫描和编译;仿真模块用以离线模拟、调试用户程序;通信模块负责把编译后的用户程序目标代码下载到运行系统。
3软PLC编程系统的界面设计
    IEC61131-3国际标准定义了5种PLC编程语言的规范:梯形图( LD)、顺序功能图(SFC)、功能模块( FBD)、结构化文本(ST)和指令表(。由于梯形图简单、直观,所以本编程系统主要采用梯形图作为用户程序的开发语言。
    本软件采用vC++开发工具,并基于多文档的DocumenU View结构设计,以支持梯形图和指令表对应的格式一。其界面由梯形图编辑区、指令表区和信息输出区三部分组成,如图2所示。
   
    梯形图编辑区用于梯形图驻留和相关参数的设置;指令表区用于显示梯形图对应的逻辑指令;信息输出区显示梯形图可能的语法错误信息以及正确执行后的输出信息。
4梯形图数据结构设计
  1)梯形图元件类的继承关系设计梯形图元件包括常开触点、常闭触点和输出线圈等简单元件和定时器、计数器、数据运算(包括加减运算、比较运算等)等复杂元件。由面向对象的继承特性,可以抽象出一个类作为梯形图元件的总体接口,再以这个类为基础,派生出具体的元件子类。梯形图元件的抽象类定义如下:
 
    由此抽象类派生出简单元件类和复杂元件类,并扩充相应的属性和方法操作;再由这两个类派生出具体元件类,如常开触点或定时器等。各元件类型的继承树示意圈,如图3所示。
  2)梯形图容器的数据结构设计整个存储梯形图的容器选择用双向链表结构表示。其原因基于以下两点:
    ①对梯形图的添加、修改、删除等操作,能够方便地运用链表的存储结构完成。
②梯形图的编辑过程是动态的,梯形图的行数、列数和元件类型都是未知的,。这种动态存储过程,用链表结构比其他的数据结构表达得更为清楚、有效。
    存储梯形图的双向链表在文档类中定义为:CObList m_ LADList,存储秭形图的容器。由此,添加梯形图元件,实质就是在内存中建立相应的对象,并调用链表的AddHead或AddTail函数加入该对象的指针;而删除梯形图元件,实质就是调用链表的RemoteHead或RemoveTail函数移除链表中对应对象的指针。下列代码表示生成一个常开元件对象,并把该对象的指针加入到链表中:
    3)用户对梯形图元件的控制用户通过与编程界面的交互,达到对梯形图元件的控制。为了缩小显示、控制和梯形图元件三者间的耦合性,可引入MVC( Model-View-Control)模式解决。其中,vc++中的CVieW类充当显示部分,并设计CPLCEleCon-troller类用以控制梯形图元件。CPLCEleController类依赖于工厂类CPLCEleFactory类,通过简单工厂模式以创建梯形图元件实体,并且针对编辑、编译和仿真的操作封装了相应方法。其定义如下:
5梯形图的编辑
    梯形图的编辑部分封装于视图类,能实现存储与显示分离,以有效降低代码的耦合性。
    梯形图的编辑大体可分为以下步骤:
    Step1选择所要加载的梯形图元件类型。
    Step 2用户在编辑区单击鼠标,扫描程序获取单击点对应位置的笛卡儿坐标值。
    Step 3添加该梯形图元件到存储链表中。
    Step 4在窗口中显示该梯形图。
    Scep 5设置梯形图元件的其他参数。
  1)梯形图的绘制  矢量图是计算机通过数学表达式解析的图形,具有内存消耗小,操作灵活的特点。因此,本软件按矢量绘制梯形图。
在vc++申,MFC类库中的CDC类封装了矢量图的相关操作,由此,对梯形图的绘制可以通过遍历链表,并调用CDC类对象指针的函数来完成。并基于面向对象的多态性调用各元件实际的绘制操作:
 
  梯形图被绘制后,其类型、行号、列号信息均被确定。而其他的参数,如元件编号、定时器的时基,由用户输入确定,具体可以通过添加消息映射函数,扫描鼠标操作实现。当用户双击某梯形图元件时,弹出参数设置对话框,输人数据后,相关的参数就被绑定在该元件对象中。
  2)梯形图的序列化要实现梯形图的多次编辑,就要对梯形图实现序列化,将其保存为文仲;而当再次调用时,需要把程序加载到内存。
    对于Document/View结构,数据都存放于CDocu-ment类里,将其中的变量写入文件,即实现了梯形图的序列化;打开文件时,通过动态创建机制,把其中变量导人内存,即实现了梯形图的反序列化。
6梯形图的编译
    梯形图的编译是编程系统的关键部分,因为编译的实质是把用户编辑的梯形图程序,经过语法分析和逻辑分析,循环扫描,最终生成运行系统可识别的目标程序。
    按照梯形图编程语言规范,编译程序扫描梯形图,经过语法分析和逻辑分析后,若发现梯形图有错误,便生成相应的错误提示信息,并复制到用户界面。
    1)梯形图的扫描梯形图扫描和编译以梯级为单位,且梯级是由相互影响的行组成的最小单元,梯形图扫描,如图4所示。
   
    对梯形图的扫描采用深度扫描算法,即以竖线元素作为逻辑区分,对梯形图网络自左向右,从上至下,逐个元素进行。
    以图4力例,一个梯形图梯级的深度扫描过程如下:
    Step l首先读取串联关系的元件Xl和X2。
    Step 2遇到并联结点A,从而转至下一行扫描,读取元件X4。
  实践证明,该扫描算法容易实现,能深入解析梯形图逻辑关系,占用存储空间较少,扫描效率较高。
    2)梯形图数据信息的记录为了提高移植性,降低运行系统程序与vc++程序的耦合度,本软件引入了生成相应的配置文件技术,以记录梯形图的数据信息,供仿真模块或运行系统读取。
    梯形图被扫描过程,程序自动生成梯形图相关的逻辑关系数据对应的配置文件,用4组数字分别代表梯形图的类型、连接关系,包括复杂元件中定时器的时基等数据信息,以备在运行系统加载。其梯形图数据信息存储结构示例,如图5所示。
 
图5存储了一个梯形图的梯级信息,一个梯形图元件对应表中的一格,表中“x-x-x-x”的格式为简单元件信息,分别表示“元件类型一连接关系一存储类型一对应存储类型数组的偏移量”。如表中第1行第1列的“1-0-0-25”数据,代表梯级中位于第1行第1列,无并联关系的常开触点,它在简单元件类型输入数组中的存储偏移量为25。
7梯形图的仿真
    为了判定被编译程序执行的正确性,本编程系统设计了仿真模块,以模拟现场梯图程序运行。仿真需要将梯形图程序转化为c程序,以实现逻辑控制。
  仿真模块主要分为逻辑运算模块、算术运算模块和梯形图更新显示模块。其中,逻辑运算模块是仿真模块的核心,负责对梯形图数据信息的识别,以及逻辑状态的转移。
  仿真程序通过读取存储梯形图逻辑信息的配置文件,并还原对应每个梯形图元件及相应的逻辑关系。以下的代码片段通过运行是类型识别,反映了当前读取的元件是常开/常闭触点或输出线圈时的逻辑运算:
  动态仿真过程在梯形图编辑区实时显示方便用户进行错误定位、追踪。具体表现为梯形图元件能流导通时的变色反显,可通过重绘触发的方式实现。
8结语
    本嵌入式软PLC编程系统实现了梯形图的编辑、编译和仿真功能。并基于vc++开发平台面向对象的封装、继承和多态性,通过编辑过程引入存储梯形图信息的配置文件,实现了编译与仿真的桥接,有效地降低了与vc++开发环境的耦合度,移植性强。
 
 
 
 
 
 
 
 
 
高精线性模组 上海生化培养箱 大容量恒温摇床 振动筛网 计价秤 液压剪板机 孵化机 箱式炉
物联网设备 步进电机 除氧器 造纸设备 步进驱动器 深圳机械加盟 带式干燥机 硫酸泵
直流屏 激光打标机 机械论文 中国控制阀网-调节阀 移动式升降机 食品机械网 电机 电子称
酷刻刻字机 中国电动滚筒网 北京时代超群 中国数控机床维修网 超声波裥棉机 步进电机论坛
设为首页  |  加入收藏  |  关于我们  |  站长留言  |  广告服务  |  友情链接申请  |  网站介绍
网站实名:步进电机网 步进电机驱动器网 微特电机网 网站地图 新闻中心
版权所有:北京时代四维科技有限公司 © Copyright By www.zgbjdj.com
京ICP备11042559号-1