ProU说明   快速入门   指令说明   运动控制   EtherCAT   C语言   可视化   CAD   通讯   PCI控制卡   MECHATROLINK   程序模板   ProH   YKCAT   视觉组件   WinPLC   附录  
上一页 下一页

程序结构

1.程序组织

       PLC采用基于循环扫描的调度机,主程序采用梯形图编程。工作方式采用不断循环的顺序扫描工作方式。扫描顺序为从上到下,从左到右,每一次扫描所用的时间称为扫描周期或工作周期。CPU从第一条指令执行开始,按顺序逐条地执行用户程序直到用户程序结束,然后返回第一条指令开始新的一轮扫描。
       根据程序量的大小所用的扫描周期的时间也不同,一般为1毫秒,扫描过程一般分为“输入采样“,“程序执行","输出刷新"三个阶段。

各程序类型的程序功能如下表所示:

程序类型 指令 说明
主程序 主程序是程序的主框架,一个项目中只能有一个主程序。
主用Main标识程序中可以调用功能块、C语言函数、工艺块。
子程序 CALL 用P***标识,用SRET标识结尾,可以把一些子功能写到子程序中。
子程序在未被调用时系统不会扫描,可以缩短程序执行时间,提高效率,执行完后回到调用的地方。
子程序可以调用功能、工艺块、C程序、多线程C程序
功能 CALLFC 名称用8个英文字符表示。可把相对独立的功能做成功能块,不执行时不会扫描,缩短程序执行时间,用return指令表示结尾。
与子程序类似,功能块程序执行完后回到调用的地方。
可调用功能块(不能调自己)、工艺块、C程序、多线程C程序
工艺块 CALLA 用填表方式编程,执行时和梯形图的循环扫描不同,采用状态机模型,只有在当前指令执行完成后才执行下一条指令。
C语言 CALLC 名称用8个英文字符表示。用ASCII C语言编程,可进行算法设计等,便于工艺计算,也可以通过C程序加载外部算法,可极大提高编程效率及执行效率。
C语言 CALLT 名称用8个英文字符表示。多线程运行C语言,扫描周期不会受到影响。函数内部不需要判断M8481-SM481。
CAD CALLG 名称用8个英文字符表示,用来调用CAD文件。

注意:

       各种类型的程序结尾指令不需要用户编写,由ProU软件自动生成。C程序在下载之前需要进行编译,程序下载时主程序、子程序、功能块、工艺块、C程序全部下载。

2.工艺块

       工艺块的执行机制是基于状态机,只有当前行指令执行完成后才会执行下一行程序。编程方式采用填表方式采用程,适合编辑简单的、分支较少的工艺流程;其特定是结构清晰,省去繁琐的代码设计。

3.子程序

       子程序采用梯形图方式编程,用P***(0~4095)标识,在进行项目设计时,可以创建多个子程序,便于项目程序的整体管理与编辑,子程序用CALL指令调用,子程序可以调用功能块、C语言程序和工艺块。子程序的变量与主程序Main共享,即使用的是同一个变量。SRET指令标识子程序结尾,编程时ProU自动生成。

4.功能

       功能程序与子程序相似,也是采用梯形图方式编程。但功能与子程序不同的是,每个功能程序中的LB/LW变量(LB局部位变量,LW局部字变量)都是局部变量,只作用于本功能程序,所以在不同的功能程序中可以使用一样的LB/LW,他们互不影响。
       系统会默认自动生成一个名叫INIT的功能程序(名称不能改),在ProH上电后首先执行且只执行一次INIT程序,可作为参数初始化使用。 局部变量在主程序(main)和子程序中,是相互关联的。

上一页 下一页
Copyright © 2020 深圳市优易控软件有限公司 www.proutech.com