搜索
bottom↓
回复: 15

请教关于C#和PLC通信如何保证时效和速度的问题。

[复制链接]

出0入98汤圆

发表于 2017-9-4 19:07:47 | 显示全部楼层 |阅读模式
做个C#的程序,可以实现和PLC的正常通信了,用的是以太网通信,但是发现一个问题,我怎么能保证譬如100毫秒和PLC交换一次数据,还有,一般交换数据是多少毫秒一次。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2017-9-4 19:09:45 | 显示全部楼层
windows不是实时操作系统.

出870入263汤圆

发表于 2017-9-4 19:38:27 | 显示全部楼层
只有驱动程序能做到严格的100毫秒间隔。其实现实应用中,特别是这种通信应用中,都是说个大概,其周期上下跳动一些毫秒是没关系的。

出0入98汤圆

 楼主| 发表于 2017-9-4 19:50:29 | 显示全部楼层
armstrong 发表于 2017-9-4 19:38
只有驱动程序能做到严格的100毫秒间隔。其实现实应用中,特别是这种通信应用中,都是说个大概,其周期上下 ...

我是100毫秒上下50毫秒都无所谓,但是我连这个都保证不了。

出870入263汤圆

发表于 2017-9-4 19:56:48 | 显示全部楼层
用thread.sleep(),还是thread.timer,还是form.timer,还是各种event的timeout?

出0入0汤圆

发表于 2017-9-4 20:31:09 | 显示全部楼层
windows 下 你把交换数据那部分做到内核层去 才可以吧 windows你在应用层没法保证的

出0入0汤圆

发表于 2017-9-4 20:33:42 来自手机 | 显示全部楼层
能不能八卦一下,楼主什么样的应用要用到100ms和PLC通讯一次?

出0入0汤圆

发表于 2017-9-4 20:42:37 | 显示全部楼层
用Server 版本的操作系统,用不上的服务不要开启。windows 的时间片是20ms,很少用程序能沾满这20ms,除非一些复杂数学计算,或者一些二逼写的死循环。 程序要设计成非阻塞的,不要死循环,要学会主动放弃CPU。线程优先级设为高点,不管有没有用。善用消费者模式。数据交换线程的交互周期设置给5ms,只负责交互数据,采集的数据通过队列的方式交给别的线程处理。这样搞下来,50ms  交互一次数据问题应该不大。

出0入76汤圆

发表于 2017-9-4 21:01:15 | 显示全部楼层
thread, 开线程吧, sleep(100), 然后用queue来交换数据

出0入98汤圆

 楼主| 发表于 2017-9-5 08:47:01 | 显示全部楼层
mohao123 发表于 2017-9-4 20:33
能不能八卦一下,楼主什么样的应用要用到100ms和PLC通讯一次?

电脑和PLC交换的字很多,而且是顺序执行,原来一小时1100个产品还能应付,现在要求1200个产品以上,就要考虑这个东西了,。

出0入89汤圆

发表于 2017-9-5 09:02:37 来自手机 | 显示全部楼层
通讯和处理分成多个线程处理

出0入85汤圆

发表于 2017-9-5 10:05:32 | 显示全部楼层
看你这100mS的要求,主要问题不在于上位机的程序吧,而在于网络的延迟,先测试网络延迟多少,再说上位机程序的问题。

出0入0汤圆

发表于 2017-9-5 11:18:49 | 显示全部楼层
难道不可以用OPC来交换数据吗?

出0入98汤圆

 楼主| 发表于 2017-9-5 15:51:09 | 显示全部楼层
marshallemon 发表于 2017-9-5 10:05
看你这100mS的要求,主要问题不在于上位机的程序吧,而在于网络的延迟,先测试网络延迟多少,再说上位机程 ...

网络延迟基本可以忽略,直接连的PLC

出0入85汤圆

发表于 2017-9-5 17:56:39 | 显示全部楼层
cdust 发表于 2017-9-5 15:51
网络延迟基本可以忽略,直接连的PLC

那就不正常了,C#的定时器一般没有那么菜的,误差也只是15mS以内的

出100入101汤圆

发表于 2017-9-6 20:25:04 来自手机 | 显示全部楼层
和系统忙不忙也有关系
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 16:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表