PLC的实现,答shen0103-PLC技术网(www.plcjs.com)-可编程控制器技术门户


PLC的实现,答shen0103

 (点击题目可以在互联网中搜索该题目的相关内容)
日期:2006-5-17 20:09:56     来源:   作者: 点击:
点击【  大  中   小 】,可以选择字体的大小,以便你阅读.
PLC的实现,答shen0103
 shen0103同志:
听你说你应该是要开发一个软PLC。
大概的实现方式如下:
STEP1开发一个编程软件,所有梯形图的元件或功能块用控件实现,真正要实现的控件只要大概十个左右,如功能块,不同的功能块显示主要通过不同的功能块号或元件(函数号)去ini文件找对应记录。
STEP2:用户在把控件拖上编辑窗口时在控件内将对应的功能块号、参数、变量名写入一个中间文件。
STEP3:通过对中间文件的扫描、语法检查、重定位后生成对应的LD文件,这时所有的变量都是变量区的偏移地址。这个过程一般要三至四次才能完成,如果要优化可能还需要多的处理,如果要做增量编译还要需要做这方面的处理。至于在线编程则需要在生成的中间文件中做更多的标志和处理。
STEP4:将文件下载至PLC,这样就会有一个比较完备的通信协议,这方面最好一开始就想好,如果不要在线编程可能还简单一点,只是对下载、上载、监视、强制、设置、参数、初始化列表等有比较清楚的概念就行了。
STEP5:程序下至PLC后,PLC在每次上电后要先进行各种软硬件的初始化,包括掉电保持的变量或输入输出口的处理,各种寄存器或标志的初始化。
STEP6:初始化完后进行程序的扫描运行,在扫描时其实是一个很简单的分支程序,这个程序前要进行取指取参再通过分支程序进行跳跳转运算。其实大家都把这一块当作PLC的核心,相反这一块是最简单的,当然如果要做优化倒还是有很多讲究要对CPU的原理、对编译原理有比较清楚的认识。
STEP7:其实下位机就相当于一个软的CPU,包括程序指针、变量指针、堆栈指针等都是应有尽有。
STEP8:每次扫描完毕后要进行IO的处理,这一块是最简单但又是最复杂的,简单做做谁都能做,但要做到高效和智能化就需要有比较好的规划。
STEP9:通信是通过中断来处理或者在中断中接收发送,但在IO处理后进行帧的处理。
STEP10:在IO处理后可以加一个工程量变换的程序进行模拟量的处理。同时如果有调试需要的还需要与IO点数一样多位的表来进行处理强制和监视等信息。
STEP11定时器、高速计数、中断型梯形图、各种通信协议、自定义通信协议、脉冲输出、PWM等,这些是可选项,当然如果没有定时器就不是PLC了。
以下是对《PLC的实现,答shen0103》的回复:
匿名回复:
    呵呵,王同志不厚道啊!不是据说某人在网上办过什么PLC开发设计班,你不是和人抢生意啊,而且不收费,那不是坏了别人的生意啊!有签与此,可以给自己加个精啊,增加人气来讨论讨论。

软PLC做好了还是有前途的!
匿名回复:
    这下贴子为什么这么冷 
上一篇: 用PLC完成数据库的功能(人性化的参数存储和调用)
下一: PLC编程经验之二--双线圈输出