您现在所在的是:

PLC论坛

回帖:15个,阅读:13723 [上一页] [1] [2] [下一页]
7699
alan3
文章数:1445
年度积分:335
历史总积分:7699
注册时间:2015/10/14
发站内信
发表于:2020/7/2 15:38:49
#0楼
虽然现在PLC大部分可以混编,梯形图夹着ST,上升沿怎么用ST写呢
呵呵呵呵呵呵呵呵
7699
alan3
文章数:1445
年度积分:335
历史总积分:7699
注册时间:2015/10/14
发站内信
发表于:2020/7/2 15:39:18
#1楼
大佬们举几个不同PLC的例子把
呵呵呵呵呵呵呵呵
37243
cvlsam 版主
文章数:12401
年度积分:1595
历史总积分:37243
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2020/7/2 15:45:12
#2楼
以下是引用alan32020/7/2 15:38:49的发言:
虽然现在PLC大部分可以混编,梯形图夹着ST,上升沿怎么用ST写呢

Current_Status : BOOL  //VAR_INPUT

Last_Status : BOOL  //VAR_IN_OUT

Positive_Edge : BOOL //上升沿输出(VAR_OUTPUT)
Negative_Edge : BOOL //下降沿输出

Positive_Edge := Current_Status AND (NOT Last_Status);
Negative_Edge := Last_Status AND (NOT Current_Status);
Last_Status := Current_Status;

Good Luck~
7699
alan3
文章数:1445
年度积分:335
历史总积分:7699
注册时间:2015/10/14
发站内信
发表于:2020/7/2 16:46:29
#3楼
没有ST功能指令直接获得上升沿?这样的话不同变量使用上升沿岂不是都要新建变量
呵呵呵呵呵呵呵呵
7699
alan3
文章数:1445
年度积分:335
历史总积分:7699
注册时间:2015/10/14
发站内信
发表于:2020/7/2 16:53:36
#4楼
回复 #2楼 cvlsam
多个变量使用上升沿这样不就需要新建多个变量
呵呵呵呵呵呵呵呵
37243
cvlsam 版主
文章数:12401
年度积分:1595
历史总积分:37243
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2020/7/2 20:04:10
#5楼
以下是引用alan32020/7/2 16:53:36的发言:
多个变量使用上升沿这样不就需要新建多个变量


无论你使用何种语言,都会使用到新建变量,包括梯形图,FBD等等,因为必须使用变量来保存前一次输入状态,区别仅仅是西门子要求用户指定变量,其他厂商由系统自动分配。

Good Luck~
791
微鑫科技
文章数:1232
年度积分:791
历史总积分:791
注册时间:2019/11/26
发站内信
发表于:2020/7/2 20:16:46
#6楼
ST的格式和C还有很大的区别的,看来。
[此贴子已经被作者于2020/7/2 20:22:08编辑过]
遇到SB,请不要和他争辩,认同他所有的观点,让他变成一个大SB。
12616
FORELF
文章数:3165
年度积分:920
历史总积分:12616
注册时间:2007/6/22
发站内信
发表于:2020/7/2 20:36:57
#7楼
R_TRIG
let me go任我行
37243
cvlsam 版主
文章数:12401
年度积分:1595
历史总积分:37243
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2020/7/3 5:46:35
#8楼
以下是引用微鑫科技2020/7/2 20:16:46的发言:
ST的格式和C还有很大的区别的,看来。
[此贴子已经被作者于2020/7/2 20:22:08编辑过]

ST语言基于PASCAL语言
8913
6926792
文章数:1110
年度积分:654
历史总积分:8913
注册时间:2012/8/13
发站内信
发表于:2020/7/3 19:01:48
#9楼
(**下降沿写法**)
IF NOT VAR_30 AND  VAR_31 THEN
VAR_33:=TRUE;
END_IF;
VAR_31:= VAR_30;

(**上升沿写法**)
IF VAR_30 AND  NOT VAR_31 THEN
VAR_33:=TRUE;
END_IF;
VAR_31:= VAR_30;

就用这种最简单的方式,甭管三菱,西门子,我们都这样写,保证程序的通用性
[此贴子已经被作者于2020/7/3 19:06:24编辑过]
自古人生与世,需有一技之长;我辈既务斯业,须当专心用功;

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005