PLC编程中变量太多怎么办?使用结构体变量,瞬间建立上万个变量
前文 三菱FX2n系列PLC结构化编程实例,电机综合控制功能块 向大家介绍了不一样的三菱FX系列PLC的编程,相信大家对下图并不陌生吧。
图一
如图一所示,这就是最后向大家介绍的结构化编程的最终例子,也就是三个电机的控制。大家看,我并没有把功能块的输入输出全部填满,为什么呢?太多了,太麻烦了。这还是三个电机,要是十个,一百个电机呢?那就要几百个变量了(注:在三菱PLC中,称之为标签,其实就是变量的意思),即使你不使用变量,直接使用物理地址,那也是很麻烦的。其实,大家肯定会碰到这种情况,比如几百个阀门的控制,几十个风机的控制,上百个气缸,电磁阀的控制,比如通讯读取写入几十个变频器或是伺服的参数等等。他们有个共同点,就是单个被控对象的变量很多,但又相似,被控对象总量又多。这时候,如果按传统方法那是很累的,因此,PLC就引入了高级功能,结构体变量。
结构体变量,是从计算机高级语言引入到PLC中的概念,它和布尔型,整型,浮点型等一样,在PLC中也是一种变量类型。在计算机高级语言中,结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合。在PLC中,它是一系列不同数据类型的集合。
举个例子,比如我们要描述一个人,那么他就具有姓名,年龄,籍贯,履历等等要素构成。同样,对于一个电机也有正转,反转,停止,电流,转速等要素。如果定义一个电机为结构体变量,那么,正转,反转,停止,电流,转速等要素就构成了电机这个结构体变量。通俗的讲,结构体变量就是一系列变量的集合,用来表述一个更高级的变量。
下面小编我就举例来说明
1 新建结构体变量
图二
如 图二所示,找到结构体,然后右击,选择新建数据
图三
如 图三所示,我们选择结构体,数据名就是我们要定义的结构体变量的名字,我们就叫它MOTOR。至此,我们就建立好了一个结构体变量,但它还是空的,还没有描述它的元素。
2 为结构体变量添加元素
组成结构体的变量可以是PLC所支持的所有变量类型。
图四
如 图四所示,我们给结构体变量MOTOT添加元素,包括正转,反转,复位,速度,电流等等。注意看数据类型,包括了布尔型和浮点型,这个可以根据需求和被控对象以及工艺要求,自己添加。
至此,我们就完全建立好了结构体变量,接下来,就是在程序用调用了。
3 调用结构体变量
调用结构体变量,首先要定义结构体变量,和我们定义普通的布尔型,整型等等变量是一样的。不过结构体变量的变量类型就是我们定义的结构体变量的名字。
图五
如图五所示,这就是定义好的结构体变量,一共定义了三个变量,注意看它的数据类型,是MOTOR型,就是我们定义的结构体变量。这个怎么选呢,我们点击红色圆圈部分
图六
如图六所示,看黄色荧光笔部分,就是选择变量类型的。基本数据类型就是常规的布尔型,浮点型,而选结构体,就是定义为结构体型变量。
在程序中使用,直接用点来引用就可以了,也就是结构体变量名.结构体元素, 比如我们要引用其中的正转 Belt_Left.Frd, Belt_Righe.Frd, Fan_Heat.Frd ,需要注意的是,要使用英文输入法。
图七
如图七所示,就是我们在程序中的使用了,我们可以看到 三菱的结构化编程中,各功能块可以自由移动 ,类似CFC,这点做的不错,得表扬一下小日本。要知道,西门子博途中即使1500也不支持这种自由移动的CFC。而这种CFC指令在处理过程控制和运动控制中使用是非常方便的,比呆板的FBD好用多了。
总结:结构体变量是PLC的高级应用技术,掌握起来可能比较难,不要说初学者,就是一些老司机理解起来也比较费劲,没关系,实践是最好的老师,大家在平常的工程项目中要用于实践,多摸索,不要故步自封,多学多练,自然就会掌握。结构化变量是实现结构化编程的利器,特别是石化,钢铁,暖通等过程控制行业,控制对象往往非常多,而控制要素又差不多,使用结构体变量是非常方便的。
PLC编程变量太多,如何规划地址便于记忆?
首先我们先看下PLC中代表变量的软元件有哪些,主要有输入X输出Y,辅助继电器M,定时器T,计数器C,状态S,数据寄存器D,XY一般小型PLC很少,40点、60点的,这个根据输入输出类型进行规划即可,主要就是分清楚高速输入、高速输出,普通的不要占用。
辅助继电器M有两类,普通的和掉电保存的,根据需要来选择,在规划地址的时候一段程序或者功能块使用连续的M,从编号0、10、20等开始,中间留有部分以备补充,比如这段用到M206,下一段就从M210或者M220开始。对于并联输出的,LD M72 OR M82 OR M92 OUT Y1,这样把编号的最后弄成统一的便于记忆也方便我们在最后调试的时候好检查。
定时器有不同单位的时间如1ms、10ms、100ms的,也有普通型和累计型的,也是根据需求来选择,向M一样可以根据使用的地方进行规划地址编号。计数器也有普通计数器和高速计数器、16位和32位之分,也有保持型计数器等,同样根据需要来确定,一般高速计数器的使用都是固定的,对应的输入都有固定的计数器。
地址的规划和选择首先要根据需要、功能来决定,然后在plc编程中所表达的动作进行统一编号,对于PLC的顺控程序,我们尽量在编程时进行段的声明、注释准确如下图,把整个PLC程序分成好几个小段写,每个小段可以写特定的动作组合、部分、功能、意义等,然后地址的规划在每段进行排列,第一段用M0~M100,第二段用M100~M200等等设计,方便我们寻找元件变量,对编程和后期的调试都很有帮助。
还有就是为了便于记忆,我们也可以采用标签对软件变量进行标记,免去注释,比如X0的标签是开始,Y0的标签是指示灯,以后我们就可以直接用“ LD 原点 OUT 指示灯”来表示 LD X0 OUT Y0了,这样就更方便了,PLC中每个变量都可以做标签进行声明。
相关问答
如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用?
如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用。首先PLC中的变量指的是内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软...
S7-200调用多个含有相同局部变量的子程序起冲突怎么办?
很高兴遇到PLC的专业问题!对于你这个问题,你已经说是局部变量了,证明你还是了解一些概念!其实局部变量也可以说是内部变量,就是你在子程序这个程序块中定...很...
西门子PLC编程软件,变量声明中的数据类型IN、OUT、IN_OUT、TEMP是怎么用法啊。有什么不一样?
in输入参数out输出参数in_out输入输出都行TEMP临时数据in输入参数out输出参数in_out输入输出都行TEMP临时数据
plc中如何用一个变量代替多个变量?
在PLC中,可以使用一个变量来代替多个变量的方法是使用数组。数组允许将多个变量存储在一个单独的变量中,并可以通过索引来访问每个特定的变量,从而实现对多个...
plc中间变量怎么用?
在SIMATICWinCCV12编程软件中,建立变量的方式一般有如下几种:1,手动输入首先,打开软件的编辑界面,在“HMI变量”中单击“添加新变量表”。在弹出的新窗...
PLC的变量如何与Wincc连接?需要在PLC程序中编程吗?
使用脚本程序,调用内部函数SetTag(“PLC变量”,GetTag(“内部变量”))。SetTag和GetTag函数可详见Wincc帮助说明使用脚本程序,调用内部函数SetTag(“PLC变量....
plc变量地址错误会停机吗?
会停机。因为PLC(可编程逻辑控制器)是一种用于自动化控制的设备,它通过读取和写入变量的值来实现控制逻辑。如果PLC变量的地址错误,可能会导致PLC无法正确读...
plc变量什么意思?
首先PLC中的变量指的是内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软元件。相比于变量,我们首先说下常量,常量指的是固定的数值,在PLC...
plc插入变量表的操作步骤.?
在SIMATICWinCCV12编程软件中,建立变量的方式一般有如下几种:1,手动输入首先,打开软件的编辑界面,在“HMI变量”中单击“添加新变量表”。在弹出的新窗...
PLC中局部变量使用方法?
PLC(可编程逻辑控制器)中的局部变量是一种存储在PLC内存中的变量,用于在程序执行过程中临时存储数据。局部变量的使用方法如下:1.声明局部变量:在使用局部...
扫一扫微信交流