这种方式类似于高级语言,可以方便地编写复杂运算程序以及各种跳转和循环。在建立POU时,选择实现语言为结构化文本(ST),如图5-36所示,建立的POU为POU ST。
图5-36 建立POU ST
在程序变量定义区,我们定义输入点I0,I1和输出点Q1为布尔量。在编程区,我们写出输出变量Q1和输入变量I0,I1的逻辑关系,如图5-37所示。
图5-37 结构化文本编程
在采用文本编程时,我们也可以用快捷键“F2”,或在编程行点击鼠标右键来调出输入助手,如图5-38、图5-39所示。
图5-38 点击鼠标右键,选择输入助手
图5-39 打开输入助手,选择所需功能块或变量
通过输入助手,我们可以调用已经做好的功能块、变量、命令关键字和操作转换符。例1:编辑一个延时输出功能。要求延时6s,输出打开。
首先,按“F2”打开输入助手,点击功能块,选择“TON”,如图5-40所示。
图5-40 打开输入助手,选择功能块
弹出功能块自动声明,需要对调用的功能块命名,如图5-41所示。
图5-41 命名确认功能块
命名这个功能块为t1,按“确定”,如图5-42所示。
图5-42 命名功能块名称
程序行出现调用的功能块t1,如图5-43所示。
图5-43 在程序行写入t1功能块
在程序中,可以给功能块的输入和输出定义变量,也可以通过仿真来观察程序执行情况。我们把编辑的程序POU ST加入到任务配置下的MAST,并且定义POU ST的执行类型为循环,循环时间为20ms,如图5-44所示。
设定PT为6s,执行仿真,使IN为“真”。则延时开始,如图5-45所示。
延时6s,输出Q为“真”,如图5-46所示。
例2:条件语句的使用
格式1:IF表达式THEN语句块
END IF结束IF语句
图5-44 添加POU ST到任务配置的MAST
图5-45 仿真开始运行
图5-46 延时结束,Q变为“真”
格式2:多个条件的串行
IF表达式1 THEN语句块1;
ELSIF表达式2 THEN语句块2;
如果表达式1为“真”,则执行语句块1。跳到结束。
如果表达式1为“假”,则再判断表达式2,表达式2
为“真”,则执行语句块2。跳到结束。
END IF
格式3:条件的并行分支
IF表达式1 THEN语句块1;
ELSIF表达式2 THEN语句块2;
ELSE语句块3;
END IF
如果表达式1为“真”,则执行语句块1。跳到结束。
如果表达式1为“假”,则再判断表达式2,表达式2
为“真”,则执行语句块2。跳到结束。
如果以上表达式都为“假”,则执行语句块3。
结束IF语句(www.daowen.com)
当前面v5为真时,不执行ELSE后面的语句。
当前面表达式都为假时,执行ELSE后面的语句。
例3:多重选择CASE表达式OF…END CASE
CASE表达式OF
值1:语句1;
值2:语句2;
……
值n:语句n;
END CASE
写出表达式
表达式值为值1,执行语句1;
表达式值为值2,执行语句2;
表达式值为值n,执行语句n;
结束CASE语句
这种选择语句结构,CASE的表达式相当于一个指针,指向被执行的语句。
程序事例:
仿真情况如下:
例4:语句的循环执行
格式1:FOR循环
规则:INT VAR:INT;
FOR<INT VAR>:=<初值>TO<结束值>{BY<步长>}DO
语句块;
END FOR
这里{}内的命令是可选的。语句块的循环执行,一直到<INT VAR>大于结束值为止。
语句块执行一次,INT VAR值增加一个步长。
参考实例如下:
仿真结果:
格式2:WHILE循环
规则:WHILE表达式DO
语句块;
END WHILE
语句块循环执行,一直到表达式为‘假’为止。
程序案例:
仿真结果如下:
格式3:REPEAT循环
规则:REPEAT语句块;
UNTIL表达式
END REPEAT
语句块循环执行,直到表达式为“真”停止。
注意规则:表达式后没有分号。
程序案例如下:
仿真执行结果:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。