PLC的结构化文本ST语言编程,请教一个简单的例子。 点击:5085 | 回复:9



ayu20

    
  • 精华:0帖
  • 求助:59帖
  • 帖子:70帖 | 83回
  • 年度积分:2
  • 历史总积分:619
  • 注册:2011年1月16日
发表于:2013-06-05 16:40:05
楼主

X0按下5次,让变量a加1,当变量a为3的时候,让Y0输出。



这一个简单的例子怎么用ST结构化文本语言编程?跪求大侠指点!!!




sun_qq1987

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 23回
  • 年度积分:0
  • 历史总积分:96
  • 注册:2009年9月28日
发表于:2013-06-05 17:30:15
1楼

if x0=true then

a:=a+1;

if a=3 then

y0:=true;

end_if

end_if

当然实际检测x0的时候 要用边沿检测

小小龙龙

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 24回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2013年4月29日
发表于:2013-06-05 20:00:34
2楼

这个是C++编程吗,看着有点像啊

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2013-06-05 20:41:29
3楼

申明部分

X0,Y0,ReStart:BOOL;

X0Count:INT:=0;

a:INT:=0;

X0R_TRIG:R_TRIG;


程序部分

X0R_TRIG(CLK:=X0);

IF X0R_TRIG.Q THEN

   X0Count:=X0Count+1;

END_IF

IF X0Count = 5 THEN

   a:=a+1;

   X0Count:=0;

END_IF

IF a=3 THEN  Y0:=TRUE; END_IF

IF ReStart THEN a:= 0; Y0:=FALSE; END_IF


yujialutiamo

  • 精华:0帖
  • 求助:4帖
  • 帖子:6帖 | 36回
  • 年度积分:0
  • 历史总积分:271
  • 注册:2012年2月22日
发表于:2013-06-06 08:53:08
4楼

回复内容:

对: ye_w 申明部分X0,Y0,ReStart:BOOL;X0Co... 内容的回复!


3楼能具体解释一下程序的含义吗?  

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2013-06-06 22:21:23
5楼

回复内容:

对: yujialutiamo 回复内容:对: ye_w  申明部分X0,Y0,ReS... 内容的回复!


就是楼主的本意呀

kumai87

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 117回
  • 年度积分:0
  • 历史总积分:380
  • 注册:2012年3月13日
发表于:2016-07-12 11:53:33
6楼

好 不错 要是多点解析一下就好了。。比如

申明部分

X0,Y0,ReStart:BOOL;

ReStart    这个是干嘛用的

刀锋2孤客

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 170回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2013年2月08日
发表于:2016-07-12 15:16:14
7楼

回复内容:

对: kumai87 好 不错 要是多点解析一下就好了。。比如申明部分X0,... 内容的回复!

 这是对这些标签的定义,X0,Y0,RESTART,是布尔量 ,a是整数初始值是0,X0R_TRIG是上升沿触发器,如国要打包成功能块供其他程序反复调用的话,还要定义输入输出管脚!RESTART是复位,触发Y0,Y0置1,如果要置0,就要写这么一段让Y0置0,总不能停机吧!

张彪V8

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2017年5月15日
发表于:2017-08-17 11:51:58
8楼

"IEC_Counter_0_DB".CTU(CU:=#X0,

                       R:=#X1,

                       PV:=#INT199,

                           Q=>#TEMP3,

                           CV=>#A);

    IF #TEMP3 THEN

        #Y := TRUE;

    ELSE

        #Y := FALSE;

    END_IF;


z250830742

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 38回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2011年7月14日
发表于:2019-07-22 14:47:40
9楼

都需要有声明么?看手册里面好多都没有直接就是用的啊、、、


热门招聘
相关主题

官方公众号

智造工程师