PlantCruise小课堂第十四讲——浅谈三目运算符在顺控中的应用

      今天在这里跟大家简单的聊聊关于三目运算符在顺控中的使用。三目运算符,又称条件运算符或三元运算符,是计算机语言(C,C++,java等)的重要组成部分。其表达式为a?X:Y,先对条件a进行判断,如果a的值为true,则执行X的运算,否则执行Y的运算。可以理解为“if a then X else Y”。

      给大家举个非常简单的例子,如下图所示,有这样的一条工艺管线产生两条分支,介质到底流往哪个方向由操作人员手动选择决定,要求由顺控完成对设备的控制,那我们该怎么做呢?

      首先,我们创建一个FLAG标志量A,如下图,当A=0时,打开XV_100,当A=1时,打开XV_101,

      这些交代清楚后我们开始编写顺控。



      一般情况下,大家可能会想到用分支结构去实现对两个设备的选择,如下图所示,这样做也不错,但今天跟大家说一下我们还可以通过使用三目运算符的方式来实现。如下图,我们不再做分支结构,如图所示,我们在一个步骤中既完成对操作员选择的判断并同时做出对应的动作。在这里简单跟大家分析表达式所表达的含义首先顺控想要对XV_100进行控制,要先将其模式属性置为PROGRAM,

       XV_100.DEVCTLA.MODEATTR:=FLAGS.A.PVFL=0?2:NOP,这句话的意思是:当FLAGS.A.PVFL=0的时候(说明此时操作员选择的是XV_100),让模式属性置为2(PROGRAM), 如果FLAGS.A.PVFL≠0,说明操作员选择的不是XV_100那我们这步什么也不做NOP(do nothing)。当然你也可以这么写XV_100.DEVCTLA.MODEATTR:=FLAGS.A.PVFL=0?2:1,即当FLAGS.A.PVFL=0的时候,让模式属性置为2(PROGRAM),如果FLAGS.A.PVFL≠0,说明操作员选择的不是XV_100,那么我们把模式属性置为1(operator)。

      XV_100.DEVCTLA.GOP:=FLAGS.A.PVFL=0?5:NOP,这句话的意思是当FLAGS.A.PVFL=0的时候(说明此时操作员选择的是XV_100),对阀门发出开阀的命令(GOP:=5),否则这步什么也不做NOP。

      当然你也可以这么写XV_100.DEVCTLA.GOP:=FLAGS.A.PVFL=0?5:4.这句话的意思是当FLAGS.A.PVFL=0的时候(说明此时操作员选择的是XV_100),对阀门发出开阀的命令(GOP:=5), 如果FLAGS.A.PVFL≠0,我们就把阀门关闭(GOP:=4)。

      在条件功能块中利用三目运算符进行判断时,与以上情况相似,FLAGS.A.PVFL=0?XV_100.DEVCTLA.GPV=5:1,意思是当FLAGS.A.PVFL=0的时候(说明此时操作员选择的是XV_100),上一步开的肯定也是XV_100,那么就只去判断XV_100是否打开即可,如果不是选择XV_100,那就让这个条件直接为1。



新闻中心

联系我们

联系人:苏经理

手机:17822252668

电话:022-59650192

邮箱:tjhkkj_sales@126.com

地址:天津市津南区恒生科技园