C# 通过以太网读取PLC数据

C#通过以太网读取PLC数据用C#通过以太网读取三菱plc数据,但有一个疑问,如果plc寄存器里面的值更新了,C#如何获取?是要在C#没加一个timer控件吗?定时去pl... C# 通过以太网读取PLC数据用C#通过以太网读取三菱plc数据,但有一个疑问,如果plc寄存器里面的值更新了,C#如何获取?是要在C#没加一个timer控件吗?定时去plc内读取?timer控件读取间隔时间,一般设置多少ms? 展开
 我来答
传奇勇者
2018-09-06 · TA获得超过747个赞
知道大有可为答主
回答量:1706
采纳率:75%
帮助的人:844万
展开全部
肯定要定时读取了,这个时间可以根据实际的业务自己定义,也可以去plc查询。
我正在做ABBPLC的开发,跟三菱可能会有不同,但感觉原理都差不多。ABB的运行机制是运行后就会按定义好的时钟循环执行,默认是200ms,然后还有个500ms的看门狗,检测到循环中断了自动启动,程序一般会安装这个默认时钟基准设定运行周期,查一下PLC的运行周期就知道更新时间了。
追问
你好,请问如果我想用c#从plc w001A,W001B,W001C点位中读取数据,请问这个要怎么做?求指点下
0117小陈
2018-09-05
知道答主
回答量:36
采纳率:42%
帮助的人:7.1万
展开全部
应该可以参加一个输入框吧,你调试一下就可以了,像有些触摸屏的可能都是200ms 不过还是建议能实时手动设定
更多追问追答
追答
另外,可不可以发一份给我参考一下呀,我也想学学,接触过C#一点点
追问
我是想问,主动获取plc数据,是不是都是用timer做的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
树洞邮局
2019-05-09
知道答主
回答量:10
采纳率:0%
帮助的人:7471
展开全部

看您的描述,应该是在一台PC上通过C#向PLC发起请求,读取某几个寄存器地址的数值。粗略地看,在请求时,可以通过周期性的任务,例如每100ms读取一次,来保证PLC寄存器数据与你读取的一致。周期越短,数据同步的可能性越大。

但是,我推测您是通过TCP协议来操作的,读取周期过短,您PC上还要处理粘包问题,处理不当会导致数据读回来时PC处理不过来,进而导致数据出错。因此,数据同步要求高时,缩短周期的成本也会相应的提升。

所以结论是:如果PLC数据变化频率高,那么不要使用TCP协议来,可以考虑websocket。如果频率低,比如接受几秒钟的延迟,那用tcp就好了。

若要使用websocket,可以考虑使用sparklogEDA工具。它将不同品牌型号的PLC封装成标准的API,便于数据同步。基于websocket协议,可以达到毫秒级的同步。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式