3.FOR......Do语句
4.While......Do语句
别人用PLC写的贪吃蛇部分程序(有很多值得借鉴与学习)
(四)使用ST语句注意事项
(五)功能块的创建与使用
(六)ST调用 功能块 FB
注:对于进行了ST程序转换时的运算结果,由于不对处理值是单字型还
是双字型进行判断,是进行无符号运算,而在可编程控制器CPU中是
进行带符号运算。
<使用示例>
Data1 = -32768;
Data2 = 16#8000;
·ST Result := Data1 / Data2; → -32768÷32768 = -1
·CPU Result := Data1 / Data2; → -32768÷-32768 = 1
数组标签全局变量
只要指定起始软元件就行。如下图所示:
(七)ST常用运算符与函数
实例:
3天产能统计实例:
程序样例:
(*单控气缸动作*)
OUT((M_action AND A_stop AND NOT A_action) OR (A_action AND NOT A_stop), O_cylinder);
(*单控气缸报警*)
IF SM412=FALSE THEN
MIddle10:=1;
END_IF ;
IF SM412=TRUE THEN
MIddle10:=0;
END_IF ;
IF SM412=FALSE THEN
MIddle11:=1;
END_IF ;
IF SM412=TRUE THEN
MIddle11:=0;
END_IF ;
IF (O_cylinder AND NOT LimitNeg) THEN
INCP(NOT MIddle11, time11);
IF time11=AlarmDelay THEN
Tim11:=1;
time11:=0;
END_IF;
END_IF;
IF (NOT O_cylinder AND LimitNeg) AND AlarmReset THEN
Tim11:=0;
END_IF;
IF (NOT O_cylinder AND NOT LimitPos) THEN
INCP(NOT MIddle10, time10);
IF time10=AlarmDelay THEN
Tim10:=1;
time10:=0;
END_IF;
END_IF;
IF (NOT O_cylinder AND LimitPos) AND AlarmReset THEN
Tim10:=0;
END_IF;
(*单控气缸报警*)
(*OUT_T((O_cylinder AND NOT LimitNeg), time11,AlarmDelay);
OUT_T((NOT O_cylinder AND NOT LimitPos) ,time10, AlarmDelay);*)
OUT((Tim11 OR (outAlamNeg AND NOT AlarmReset)) , outAlamNeg);
OUT((Tim10 OR (outAlamPos AND NOT AlarmReset )) ,outAlamPOs);
热点模块:
|