回复:SMART-80个工位双联开关控制公用灯示例分享

已锁定

xinchen

  • 帖子

    240
  • 精华

    1
  • 被关注

    5

论坛等级:侠圣

注册时间:2015-11-05

白金 白金 如何晋级?

发布于 2022-06-18 08:14:05

13楼

展开查看
以下是引用万泉河在2022-06-17 15:45:09的发言 >10楼

这咋还没看懂呢!

未来真实的工况是80个工位70个不重样, 其中只有10几个能重复调用。 所以,循环是用不上滴。 


而所有类型中,唯一的共同点是都有一个XX开关。 



以下是引用xinchen在2022-06-17 09:38:54的发言 >8楼:看懂了几个想法:程...

引用8楼详细内容:

看懂了

几个想法:

  1. 程序开始结束可以加入 DIO 映射,这样每个工位的数据更加清晰,可惜smart没有UDT,只能人为定义寄存器排布;

  2. 工位调用可以用循环+指针,更能体现OO;当然,所有工位职责不是都一样,但要说明问题的话,用“大同小异”更好;

  3. 工位控制可以再细化,实际每个工位不止是控制公共灯,对吧,那“工位控制”下再调用“公共灯控制”子程序,以后再加入别的控制子程序,那 “工位”这个对象会更清晰丰满;同时也能组合出第二点的“小异”,毕竟要职责单一嘛;


我觉得这个例子本身不是很能表现OO或是低耦合(嗯,不谈起因吧)

类似补水系统应该更加合适:

每个“工位”有液位,有阀泵控制(像阀门,可以包括开关到位、开关控制、超时报警等),可以加入容积泵、离心泵的不同导致的阀泵动作先后等等。。。

随着需求的不断增加,重复几个这样的工位,可能更能说明问题,万总觉得呢


这。。。好吧,是我多想了

如果你的思路是这个,那我觉得这设计有些牵强了,有些“四不像”

虽然PLC没有.NET的各种继承、重写、多态等,但很多思路可以借鉴,可以看看设计模式相关的,尤其是策略者模式

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9120条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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