首页 > 其他分享 >ST入门笔记3

ST入门笔记3

时间:2023-04-10 14:45:57浏览次数:34  
标签:END 入门 笔记 ST Y1 Y0 Y3 Y2 D0

ST自动控制灯模式
//之前是手动的
[要求]自动 模式切换5s 自动
[配件] m1减模式不用了 只需m0 m2 开始停止
[讲解]添加定时器(条件D0=1,tc0,50)
TS定时器当前值
**时间继电器一定要放在if或case语句外侧,否则就会每跑一次被清零
[代码]
(*M0启动*)
IF LDP(1,M0) THEN
D0:=D0+1;
END_IF;
(*M2 stop*)
IF M2=1 THEN
D0:=0;
END_IF;
(*定时器0123*)
OUT_T(D0=1,TC0,50);
IF TS0=1 THEN
D0:=2;
END_IF;
OUT_T(D0=2,TC1,50);
IF TS1=1 THEN
D0:=3;
END_IF;
OUT_T(D0=3,TC2,50);
IF TS2=1 THEN
D0:=4;
END_IF;
OUT_T(D0=4,TC3,50);
IF TS3=1 THEN
D0:=1;
END_IF;
(*D0 值对应灯状态*)
CASE D0 OF
0:
Y0:=0;
Y1:=0;
Y2:=0;
Y3:=0;
Y4:=0;
Y5:=0;
Y6:=0;
Y7:=0;
1:
Y0:=1;
Y1:=1;
Y2:=1;
Y3:=1;
Y4:=0;
Y5:=0;
Y6:=0;
Y7:=0;
2:
Y0:=0;
Y1:=0;
Y2:=0;
Y3:=0;
Y4:=1;
Y5:=1;
Y6:=1;
Y7:=1;
3:
Y0:=1;
Y1:=0;
Y2:=1;
Y3:=0;
Y4:=1;
Y5:=0;
Y6:=1;
Y7:=0;
(*利用M8012产生100ms为周期震荡 M8012的0与1映射灯0与1*)
4:
IF M8012=1 THEN
Y0:=1;
Y1:=1;
Y2:=1;
Y3:=1;
Y4:=1;
Y5:=1;
Y6:=1;
Y7:=1;
ELSE
Y0:=0;
Y1:=0;
Y2:=0;
Y3:=0;
Y4:=0;
Y5:=0;
Y6:=0;
Y7:=0;
END_IF;
END_CASE;
//现在我们只用一个定时器实现切换
之前我们使用4个定时器中转 ...
**新知识点 ts0的常闭触点
out_t(d0=1,tc0,50)→out_t(not ts0,tc0,50)
//也就是用T0的常闭使它得电(梯形图中在一个定时器前面串上自己的常闭触点)
//一上电5秒通5秒断把自己
ts0=1{d0+=1;}
**很瞬间的一个过程 不放心 可能它加的多了
**LDP(1,ts0)LDP t0触点的上升沿
(EN使能 【全时检测填1】只要PLC上电就检测它的上升沿,
)true √ 1
[讲解]会加过头
解决方案:等于5时为1.
[问题]在程序执行过程中,一上电就工作,有问题,停止键失效
解决方案:加上标志位!**新知识点
加条件 (D0>0) AND 有点乱?加括号
**ST语言先执行括号里面的 (()and())
先算括号里面的 然后括号与括号之间运算
[代码]
(*M0启动*)
IF LDP(1,M0) THEN
D0:=1;
END_IF;
(*M2 stop*)
IF M2=1 THEN
D0:=0;
END_IF;
(*定时器常闭触点初始化 5s一个*)
OUT_T(D0>0 AND NOT TS0),TC0,50);
D2:=TN0;
(*定时器常开触点上升沿检测 内部寄存器d0被改变*)
IF LDP(1,TS0)=1 THEN
D0:=D0+1;
END_IF;
(*D0=5时候处理过程*)
IF D0=5 THEN
D0:=1;
END_IF;
(*D0 值对应灯状态*)
CASE D0 OF
0:
Y0:=0;
Y1:=0;
Y2:=0;
Y3:=0;
Y4:=0;
Y5:=0;
Y6:=0;
Y7:=0;
1:
Y0:=1;
Y1:=1;
Y2:=1;
Y3:=1;
Y4:=0;
Y5:=0;
Y6:=0;
Y7:=0;
2:
Y0:=0;
Y1:=0;
Y2:=0;
Y3:=0;
Y4:=1;
Y5:=1;
Y6:=1;
Y7:=1;
3:
Y0:=1;
Y1:=0;
Y2:=1;
Y3:=0;
Y4:=1;
Y5:=0;
Y6:=1;
Y7:=0;
(*利用M8012产生100ms为周期震荡 M8012的0与1映射灯0与1*)
4:
IF M8012=1 THEN
Y0:=1;
Y1:=1;
Y2:=1;
Y3:=1;
Y4:=1;
Y5:=1;
Y6:=1;
Y7:=1;
ELSE
Y0:=0;
Y1:=0;
Y2:=0;
Y3:=0;
Y4:=0;
Y5:=0;
Y6:=0;
Y7:=0;
END_IF;
END_CASE;
以后会讲全局标签与局部标签的使用
本节课完成 手动与自动流程 前面还有启保停电路... 本节结束

 

标签:END,入门,笔记,ST,Y1,Y0,Y3,Y2,D0
From: https://www.cnblogs.com/ihoi/p/17302860.html

相关文章

  • 第一章 static、单例与继承
    目录面向对象一、static关键字1、static修饰成员变量2、static修饰成员变量内存中执行原理3、成员方法的执行原理4、工具类5、静态关键字注意事项6、代码块java静态代码块,构造方法,构造代码块的执行先后顺序1、执行顺序2、java中父类和子类代码执行顺序设计模式单例模式继承1、执行......
  • 保护和升级PostgreSQL
    PostgresqlPostgreSQL是一种流行的开源关系型数据库管理系统,被许多组织用于存储和管理他们的数据。然而,数据库系统中的数据很容易受到攻击和泄露,因此必须采取安全措施和定期进行升级。本文介绍了保护和升级PostgreSQL的一些方法。一、开启审计PostgreSQL支持审计功能,可以记录......
  • 前端--学习笔记
    1.HTML是什么?是超文本标语语言。是一种标记语言。2.为什么要学HTML?学HTML是学什么?学HTML是为了给文档加了标记,3.加标记为了什么?为了弄样式。4.举例来讲HTML?5.所以学HTML是学什么?就是学各种加标签的方式,学做记号,为了以后找。(找是为了加样式,变得更好看) 6.HT......
  • AtCoder Regular Contest 159
    Preface这周六紧张刺激的一日三赛,上午蓝桥杯,晚上ARC之后隔5min就是CF,可谓是手搓键盘到冒烟的一天了这场其实打的感觉很没水准,B刚开始没想清楚很多边界条件挂了三发,45min左右才过然后C的构造也不太会,随便写了个暴力也是挂挂挂,只好弃了去写D题了结果发现D题好像是个不难的线段树......
  • 【ACM博弈论】SG函数入门(1):从巴什博奕到尼姆游戏
    在我小时候以前做题的时候,遇到博弈题往往都是漫无目的地打表找规律,或者找一些特殊情况但是没有很好的分析方法。其实博弈题是有比较套路的解题方法的,那就是利用SG函数,第一节不会讲到SG函数的具体用法,我们先来博弈入个门,学习一下最基本的博弈类型:Nim游戏。......
  • static
    static是C语言中的一个关键字,它可以用于多种情况,下面分别介绍:用于局部变量声明在函数内部使用static修饰一个局部变量时,该变量就被称为"静态局部变量"。与普通的局部变量不同,静态局部变量的生命周期只到程序结束才会被销毁,而且它的作用域仅限于定义该变量的函数内部。用于......
  • Struts2的运行原理和运行与原理
    运行机制 1、客户端发送请求、通过ActionContextLoader调用FilterDispatcher(struts) 2、FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action 3、如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy 4、ActionProxy......
  • Alkaitu:STM32的IO模拟SPI
    #include"user_spi.h"#include"stm32f10x.h"#include"user_config.h"/*移植需改动六处*//***************************************************************//*挂在是SPI总线上的外设的个数和延迟时间,移植修改第一处*//**************************************......
  • 扯下@EventListener这个注解的神秘面纱。
    你好呀,我是歪歪。前段时间看到同事在项目里面使用了一个叫做@EventListener的注解。在这之前,我知道这个注解的用法和想要达到的目的,但是也仅限于此,其内部工作原理对我来说是一个黑盒,我完完全全不知道它怎么就实现了“监听”的效果。现在既然已经出现在项目里面了,投入上生产上......
  • (第八篇)__format__、__hash__、__init_subclass__、__reduce_ex__、__reduce__、__si
    一、__format__(self,format_spec)当我们使用format()方法对一个对象进行格式化时,如果这个对象有__format__方法,那么这个方法就会被调用。它接受一个变量作为参数,并返回一个格式化后的字符串。classPerson:def__init__(self,name,age):self.name=name......