软plc概述(个人资料整理)

2026/1/14 18:40:09

“ 先进制造技术 ”课程

该软件主要有以下几方面的功能:

(1)梯形图的编辑:能够实现梯形图元素的输入、编辑(复制、粘贴和剪切)、存储和显示,如输入元素,输出元素。

(2)指令表的编辑:能够实现语句和指令的输入、编辑、存储和显示。 (3)梯形图向指令表的转换。

(4)语法检查功能:主要是对程序的语法错误进行检查。对于梯形图而言,主要是检查梯形图的符号输入是否符合编程规则。对于指令表,则主要检查是否有指令和元素名称输入错误。

(5)编译并解释PLC程序:扫描PLC程序,分析程序的逻辑关系,根据各个元素的预设状态,得出最终逻辑结果。

(6)程序仿真:采用图形表达方式,对程序逻辑进行模拟。

3.2 PLC语言编辑模块

该语言编辑模块由梯形图编辑模块和指令表编辑模块两部分组成。 1.梯形图编辑模块

组成梯形图的元素分为输入元素、输出元素、定时器、计数器、功能元素和连接元素。根据需要这里只选取输入元素、输出元素、功能元素和连接元素。其他元素可以在今后进行扩充完善。

(1)数据结构的设计

整个梯形图编辑模块采用行存储结构,每行为一个链结,整个梯形图用双向链表的数据结构来表示。梯形图是由若干行组成,每行又由若干个元素组成,梯形图的每一行也可以用双向链表来表示。选用双向链表的主要原因有两个:

①梯形图的编辑过程是动态的,选用链表便于表达。

在编辑过程中,梯形图的行数、每行的元素个数、类别都是未知的,整个编辑过程是一种动态存储过程。链表的存储结构便于表达这种动态存储过程。

②针对梯形图的结构特点,选用链表易于操作。

链表的操作是由指针来完成的,对于梯形图编辑过程中的复制、剪切、粘贴、删除、查找等功能都可以由指针操作方便地完成。

根据梯形图的特点,设计三个类:梯形图元素类(CSoftPLCEIe类)、梯形图类(CSoftPLC类)和梯形图文档类(CSoftPLCDoc类)。类的主要代码如下:

class CSoftPLCEle:public CObjcct //梯形图元素类

{

public:

CSoftPLCEIe(int nRow,int nCol,

int nIDbitmap,CString sLabcl); //构造函数

void DrawBitmap(CDC* pDC); //绘制函数

??

8

“ 先进制造技术 ”课程

protected: int m_nIDbitmap; //梯形图位图ID CString strLabcl;//梯形图的标号 int m_nRwv; //元素所在行 int m_ nCol; //元素所在列

??

};

class SoftPLC:public CObject //梯形图类 {

public: CSoftPLC(int nRowNum); //构造函数 CTypcdPtrListm_plcEleList; //元素链表 void DrawRowBitmap(CDC* pDC);//绘制函数 void RemovePreSoftPLCEIe( int nCol ) ; //删除函数 void InsertSoftPLCEIe(int nCol,

CSoftPLCEIe*pNewSoftPLCEIe);//插入函数

CSoftPLCEIe* FindSoftPLCEIe(int nCol);//查找函数

?? protected:

CSoftPLC();//默认构造函数

int m_nRowNum; //行号 ??

};

class CSoftPLCDoc:public CDocumcnt//梯形图文档类

{

protected:

CSoftPLCDoc();//默认构造函数 int m_nRowNum; //梯形图行数

?? public:

CTypedPtrList m_plcList; //行双向链表

CSoftPLC* NewSoftPLC(int nRow);//生成一个新的行 void RemovePreSoftPLC(int nRow);//删除行函数 void InsertSoftPLC ( int nRow,

CSoftPLC*pNewSoftPLC ) ; //插入行函数

??

};

9

“ 先进制造技术 ”课程

(2)梯形图编辑模块的实现

根据梯形图编辑的特点,选用支持屏幕滚动和多窗口操作的CScrollView类作为梯形图编辑器视窗的基类。为了编辑方便和界面整洁,将视分成一定间隔的行和列以形成大小相等排列整齐的方形输入区。通过对梯形图符号的分析,将其归纳为几种符号的基本图库,在屏幕上方做一个工具栏供用户选择。每一种梯形图元素图的大小与方形输入区的大小相等。编辑梯形图程序时,可以用鼠标直接选用工具栏中所需图素,将其放入视图中的某个位置。

图7 软PLC梯形图编辑界面

2.指令表编辑模块

在设计指令表编辑模块时,选用微软基本类库中的CEditView类作为基类。CEditView是一个具有文字编辑功能的类,它所使用的窗口是Windows的标准控件之一Edit,其SerializeRaw成员函数可以把Edit控件中的数据写到文件中。另一方面,由于该类是从CView类派生而来,支持多窗口操作并有文件预览功能。因此,指令表文件可以非常方便地在编辑视窗中进行编辑。

10

“ 先进制造技术 ”课程

图8 软PLC指令表编辑界面

3.3 PLC语言编译技术

PLC编译模块由梯形图语法检查模块、梯形图程序逻辑检查模块和指令表程序语法检查模块组成。梯形图程序语法检查模块检查用户PLC图形程序有无指令标记重复、指令地址越界等语法错误;梯形图程序逻辑检查模块检查PLC图形程序有无逻辑错误,如指令位置不正确、梯级中缺少输出指令等;语言程序语法检查模块检查用户语句程序有无拼写、指令格式、指令地址越界等语法错误。

梯形图编译时以梯级为单位,梯级是相互影响的行组成的最小单元。编译时采用深度优先的扫描方法,按照从上到下从左到右的顺序进行,即在扫描过程中,遇到并联结点就转入下一行进行扫描,行与行之间的切换由指针的变换来实现,原先位置的指针被预先存储起来,待并联模块扫描完后,再从原来的位置开始往下扫描。梯级和扫描顺序见图。

11


软plc概述(个人资料整理).doc 将本文的Word文档下载到电脑
搜索更多关于: 软plc概述(个人资料整理) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219