[三菱] 三菱ST编程02

[复制链接]
查看76378 | 回复0 | 2024-4-28 08:43:13 | 显示全部楼层 |阅读模式
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);

热点模块:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则