回复:求助各位前辈老师,这个LAD程序段用SCL怎么写?

已锁定

风中有朵云做的鱼

  • 帖子

    88
  • 精华

    1
  • 被关注

    0

论坛等级:侠士

注册时间:2022-05-03

白金 白金 如何晋级?

发布于 2023-02-06 15:36:50

3楼

展开查看
以下是引用小鱼同学在2023-02-06 14:12:23的发言 >2楼

谢谢,,输出 := 条件这个无法实现,

因为变量"DWord".DosingPump1DoseAO在手动模式("Byte".SysStatus = 1)下需要输入值.

"Byte".SysStatus = 2是清洁模式, 无需输入直接替换值,

"Byte".SysStatus = 3是自动模式, 无需输入直接替换值,

 scl目前就是监控不方便..

以下是引用ZXC2011在2023-02-06 10:21:43的发言 >1楼:第一段别写if了,变...

引用1楼详细内容:

第一段别写if了,变量直接:=所有条件就行了。

多此一举了...如果没有你这个梯形图做翻译,我不认为能很方便直接写出复杂的scl逻辑。

西门子又不像某些品牌scl/st与lad,fbd无法在同一个子程序内共存,该scl的段写scl该梯形图的梯形图就完了。反过来说西门子的scl监控是很不方便的,有些品牌的bool状态和寄存器数据是直接显示在scl/st语句本体上的,类似于lad的监控,分析复杂逻辑方便的多。

外面的if可以这样写:虽然又臭又长

"DqDosingPump1Run":= "DISwitchValve1Opend" AND NOT "DqDosingPump1Failure"  AND 

  (("Byte".SysStaus=1 and ("Boll".DosingPump1ON OR "DqDosingPump1Run")  AND "Boll".DosingPump1OFF) OR

 "Byte".SysStaus=2 OR

 ("Byte".SysStaus=3 AND  NOT "DqDosingPump2Run")


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15228条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。