软PLC的实现方法

软PLC的实现方法

STEP1:开发一个编程软件,所有梯形图的元件或功能块用控件实现,真正要实现的控件只要大概十个左右,如功能块,不同的功能块显示主要通过不同的功能块号或元件(函数号)去ini文件找对应记录。

STEP2:用户在把控件拖上编辑窗口时在控件内将对应的功能块号、参数、变量名写入一个中间文件。

STEP3:通过对中间文件的扫描、语法检查、重定位后生成对应的LD文件,这时所有的变量都是变量区的偏移地址。这个过程一般要三至四次才能完成,如果要优化可能还需要多的处理,如果要做增量编译还要需要做这方面的处理。至于在线编程则需要在生成的中间文件中做更多的标志和处理。

STEP4:将文件下载至,这样就会有一个比较完备的通信协议,这方面最好一开始就想好,如果不要在线编程可能还简单一点,只是对下载、上载、监视、强制、设置、参数、初始化列表等有比较清楚的概念就行了。

STEP5:程序下至PLC后,PLC在每次上电后要先进行各种软硬件的初始化,包括掉电保持的变量或输入输出口的处理,各种寄存器或标志的初始化。

STEP6:初始化完后进行程序的扫描运行,在扫描时其实是一个很简单的分支程序,这个程序前要进行取指取参再通过分支程序进行跳跳转运算。其实大家都把这一块当作PLC的核心,相反这一块是最简单的,当然如果要做优化倒还是有很多讲究要对CPU的原理、对编译原理有比较清楚的认识。 字串4

STEP7:其实下位机就相当于一个软的CPU,包括程序指针、变量指针、堆栈指针等都是应有尽有。

STEP8:每次扫描完毕后要进行IO的处理,这一块是最简单但又是最复杂的,简单做做谁都能做,但要做到高效和智能化就需要有比较好的规划。

STEP9:通信是通过中断来处理或者在中断中接收发送,但在IO处理后进行帧的处理。

STEP10:在IO处理后可以加一个工程量变换的程序进行模拟量的处理。同时如果有调试需要的还需要与IO点数一样多位的表来进行处理强制和监视等信息。

STEP11:定时器、高速计数、中断型梯形图、各种通信协议、自定义通信协议、脉冲输出、PWM等,这些是可选项,当然如果没有定时器就不是PLC了。,STEP1:开发一个编程软件,所有梯形图的元件或功能块用控件实现,真正要实现的控件只要大概十个左右,如功能块,不同的功能块显示主要通过不同的功能块号或元件(函数号)去ini文件找对应记录。

STEP2:用户在把控件拖上编辑窗口时在控件内将对应的功能块号、参数、变量名写入一个中间文件。

STEP3:通过对中间文件的扫描、语法检查、重定位后生成对应的LD文件,这时所有的变量都是变量区的偏移地址。这个过程一般要三至四次才能完成,如果要优化可能还需要多的处理,如果要做增量编译还要需要做这方面的处理。至于在线编程则需要在生成的中间文件中做更多的标志和处理。

STEP4:将文件下载至,这样就会有一个比较完备的通信协议,这方面最好一开始就想好,如果不要在线编程可能还简单一点,只是对下载、上载、监视、强制、设置、参数、初始化列表等有比较清楚的概念就行了。

STEP5:程序下至PLC后,PLC在每次上电后要先进行各种软硬件的初始化,包括掉电保持的变量或输入输出口的处理,各种寄存器或标志的初始化。

STEP6:初始化完后进行程序的扫描运行,在扫描时其实是一个很简单的分支程序,这个程序前要进行取指取参再通过分支程序进行跳跳转运算。其实大家都把这一块当作PLC的核心,相反这一块是最简单的,当然如果要做优化倒还是有很多讲究要对CPU的原理、对编译原理有比较清楚的认识。 字串4

STEP7:其实下位机就相当于一个软的CPU,包括程序指针、变量指针、堆栈指针等都是应有尽有。

STEP8:每次扫描完毕后要进行IO的处理,这一块是最简单但又是最复杂的,简单做做谁都能做,但要做到高效和智能化就需要有比较好的规划。

STEP9:通信是通过中断来处理或者在中断中接收发送,但在IO处理后进行帧的处理。

STEP10:在IO处理后可以加一个工程量变换的程序进行模拟量的处理。同时如果有调试需要的还需要与IO点数一样多位的表来进行处理强制和监视等信息。

STEP11:定时器、高速计数、中断型梯形图、各种通信协议、自定义通信协议、脉冲输出、PWM等,这些是可选项,当然如果没有定时器就不是PLC了。

软PLC的实现方法

相关文章:

你感兴趣的文章:

标签云: