西门子SCL实现数码循环切换

应用的软件是西门子的博图V18,功能实现是按下启动按钮每隔两秒切换一次数字,从0~9一直循环,按下停止按钮停止循序。比起梯形图,SCL更像是单片机的编程思路,需要哪一个口亮就直接至高或是至低。用Q0.0~Q0.6分别表示字段a、b、c、d、e、f、g。

代码实现

"启动保持信号" := ("启动按钮" OR "启动保持信号") AND NOT "停止按钮";
"t0".TON(IN := "启动保持信号"AND NOT "时间信号t0" ,
         PT := T#20s,
         Q => "时间信号t0",
         ET => "时间计数");
//0
IF "时间计数">T#0s AND  "时间计数"<=T#2s THEN
    "a字段" := 1;
    "b字段" := 1;
    "c字段" := 1;
    "d字段" := 1;
    "e字段" := 1;
    "f 字段":= 1;
    "g字段" := 0;
//1
ELSIF "时间计数">T#2s AND  "时间计数"<=T#4s THEN
    "a字段" := 0;
    "b字段" := 1;
    "c字段" := 1;
    "d字段" := 0;
    "e字段" := 0;
    "f 字段":= 0;
    "g字段" := 0;
//2
ELSIF "时间计数">T#4s AND  "时间计数"<=T#6s THEN
    "a字段" := 1;
    "b字段" := 1;
    "c字段" := 0;
    "d字段" := 1;
    "e字段" := 1;
    "f 字段":= 0;
    "g字段" := 1;
//3
ELSIF "时间计数">T#6s AND  "时间计数"<=T#8s THEN
    "a字段" := 1;
    "b字段" := 1;
    "c字段" := 1;
    "d字段" := 1;
    "e字段" := 0;
    "f 字段":= 0;
    "g字段" := 1;
//4
ELSIF "时间计数">T#8s AND  "时间计数"<=T#10s THEN
    "a字段" := 0;
    "b字段" := 1;
    "c字段" := 1;
    "d字段" := 0;
    "e字段" := 0;
    "f 字段":= 1;
    "g字段" := 1;
//5   
ELSIF "时间计数">T#10s AND  "时间计数"<=T#12s THEN
    "a字段" := 1;
    "b字段" := 0;
    "c字段" := 1;
    "d字段" := 1;
    "e字段" := 0;
    "f 字段":= 1;
    "g字段" := 1;
//6
ELSIF "时间计数">T#12s AND  "时间计数"<=T#14s THEN
    "a字段" := 1;
    "b字段" := 0;
    "c字段" := 1;
    "d字段" := 1;
    "e字段" := 1;
    "f 字段":= 1;
    "g字段" := 1;
//7
ELSIF "时间计数">T#14s AND  "时间计数"<=T#16s THEN
    "a字段" := 1;
    "b字段" := 1;
    "c字段" := 1;
    "d字段" := 0;
    "e字段" := 0;
    "f 字段":= 0;
    "g字段" := 0;
//8
ELSIF "时间计数">T#16s AND  "时间计数"<=T#18s THEN
    "a字段" := 1;
    "b字段" := 1;
    "c字段" := 1;
    "d字段" := 1;
    "e字段" := 1;
    "f 字段":= 1;
    "g字段" := 1;
//9
ELSIF "时间计数">T#18s AND  "时间计数"<=T#20s THEN
    "a字段" := 1;
    "b字段" := 1;
    "c字段" := 1;
    "d字段" := 1;
    "e字段" := 0;
    "f 字段":= 1;
    "g字段" := 1;
END_IF;

变量表:

NamePathData TypeLogical AddressCommentHmi VisibleHmi AccessibleHmi WriteableTypeobject ID
启动按钮默认变量表Bool%M0.0TrueTrueTrue
a字段默认变量表Bool%Q0.0TrueTrueTrue
b字段默认变量表Bool%Q0.1TrueTrueTrue
c字段默认变量表Bool%Q0.2TrueTrueTrue
d字段默认变量表Bool%Q0.3TrueTrueTrue
e字段默认变量表Bool%Q0.4TrueTrueTrue
f 字段默认变量表Bool%Q0.5TrueTrueTrue
g字段默认变量表Bool%Q0.6TrueTrueTrue
停止按钮默认变量表Bool%M0.1TrueTrueTrue
启动保持信号默认变量表Bool%M3.0TrueTrueTrue
Tag_2默认变量表Bool%Q3.0TrueTrueTrue
Tag_3默认变量表Time%MD0TrueTrueTrue
Tag_4默认变量表Bool%Q3.1TrueTrueTrue
Tag_5默认变量表Bool%M3.1TrueTrueTrue
时间计数默认变量表Time%MD4TrueTrueTrue
时间信号t0默认变量表Bool%M1.0TrueTrueTrue
字段1默认变量表Bool%M1.1TrueTrueTrue
字段2默认变量表Bool%M1.2TrueTrueTrue
Tag_10默认变量表Time%MD8TrueTrueTrue
字段3默认变量表Bool%M1.3TrueTrueTrue
Tag_12默认变量表Time%MD12TrueTrueTrue
字段4默认变量表Bool%M1.4TrueTrueTrue
Tag_14默认变量表Time%MD16TrueTrueTrue
字段5默认变量表Bool%M1.5TrueTrueTrue
Tag_16默认变量表Time%MD20TrueTrueTrue
字段6默认变量表Bool%M1.6TrueTrueTrue
Tag_18默认变量表Time%MD24TrueTrueTrue
字段7默认变量表Bool%M1.7TrueTrueTrue
Tag_20默认变量表Time%MD28TrueTrueTrue
字段8默认变量表Bool%M2.0TrueTrueTrue
Tag_22默认变量表Time%MD32TrueTrueTrue
字段9默认变量表Bool%M2.1TrueTrueTrue
Tag_24默认变量表Time%MD36TrueTrueTrue
Tag_7默认变量表Time%MD40TrueTrueTrue

实现效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值