回复:FB块里有没有只属于这个FB块的内部全局变量?

已锁定

冬日

  • 帖子

    3366
  • 精华

    56
  • 被关注

    45

论坛等级:奇侠

注册时间:2005-09-01

白金 白金 如何晋级?

发布于 2023-07-01 23:19:32

33楼

展开查看
以下是引用Zane在2023-07-01 12:54:37的发言 >32楼

比如某个仪表,走232C串口通信/或者485/TCP但是只允许一个连接的,程序有诺干(若干)个地方跟这个仪表需要通信,但是受限于通信连接只能同时一个通信

--------------------------------------------------------------------------------------------------------------

这句话的问题很多:

1)前提是只有一个仪表

2)程序中有多处通信需求与上述这一个仪表通信

3)只允许一个链接

4)涉及得通信是用户程序级别的异步通信


那么楼主想要的是什么呢?


程序跑到某段,需要这个特定仪表的某个参数参与计算或控制,就要发起一次通信去读或写这个参数。


是什么?这是通信与逻辑耦合了,而我们编程是要做到通信与逻辑去耦合。通信与逻辑程序是异步执行的,完全可以把通信作为一种后台的服务,与逻辑程序之间就是数据的交互,而不是事件逻辑响应。


因此,楼主所谓的智能通信,我觉得其核心就是事件响应做通信,这是把通信与控制耦合了,以此类推。



以下是引用冬日在2023-06-30 15:22:54的发言 >24楼:这个需求跟走什么协...

引用24楼详细内容:

这个需求跟走什么协议没有半毛钱关系,变频器控制的说法也只是举个例子而已,有这种需求的地方多了去了。

比如某个仪表,走232C串口通信/或者485/TCP但是只允许一个连接的,程序有诺干(若干)个地方跟这个仪表需要通信,但是受限于通信连接只能同时一个通信。

那么怎么通信?要么手动轮询,要么智能一点自动去轮询!我要的是第二种,智能去轮询!那么只能(智能)轮询的时候,必然需要直到(知道)现在轮询的状态,所以这个状态,要么所有FB实例都可以读写,要么全局都可以读写。我想要的是仅仅在FB所有是实例,仅此而已!

以下是引用手机用户20210508452698在2023-06-30 09:02:03的发言 >23楼:主从通讯,轮询方式...

引用23楼详细内容:

主从通讯,轮询方式,这是各大厂家的变频器都支持的东西,你不去利用。自己去搞自由口通讯,然后担心通讯冲突的问题。何苦。

版主果然不一般,把我没能完整表达的意思基本上表达出来了!假设

1,PLC走485跟若干仪表通信,有时候读有时候写,有时候同一个仪表,有时候不同仪表。但是因为是485,一次只能完成一个工作,又因为是异步通信,可能经历诺干个周期。我想做一个功能块来负责通信,这个块完全平行调用,每个需要的地方,只需要输入要读写的地址,剩下的完全智能轮询。那么对仪表的通信,是不是将变得很简单?

2,有一个变频器控制若干个轴,根据实际需要在几个轴之间加上接触器来回切换。轴有启动和停止两个命令,当启动命令关闭后轴保持运行,直至收到停止命令,或者其他轴有启动要求,然后斜坡停止,抱闸,切换到另外一个轴,如果同时有请求,那么先运行的有优先权!常规的做法是一个地方读写变频器的控制字,状态字。然后每个轴根据这些去做逻辑控制,切换!我的目标是做成一个功能块,还是平行调用。每个使用的地方,只管负责请求和停止,给定,剩下的后台智能处理。

但是上述两种,都需要有一个在这个FB的实例之间穿梭的变量,直到当前的运行状态,或者有更好的办法我还没发现?

If anything can go wrong, it will.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10590条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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