jeeseliu
技术无止境
级别: 探索解密
精华主题: 0
发帖数量: 58 个
工控威望: 169 点
下载积分: 5508 分
在线时间: 32(小时)
注册时间: 2018-01-23
最后登录: 2020-05-27
查看jeeseliu的 主题 / 回贴
楼主  发表于: 2018-10-19 16:11
三菱ST编程02

https://mp.weixin.qq.com/s/aSPsQGHgqlZapJV6IBpwpw

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);

阅读 16赞
本帖最近评分记录:
  • 下载积分:+1(明月松间照) 好贴好贴!
    jeeseliu
    技术无止境
    级别: 探索解密
    精华主题: 0
    发帖数量: 58 个
    工控威望: 169 点
    下载积分: 5508 分
    在线时间: 32(小时)
    注册时间: 2018-01-23
    最后登录: 2020-05-27
    查看jeeseliu的 主题 / 回贴
    1楼  发表于: 2018-10-25 10:28
    感谢,互相学习