ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

别被忽悠了,主流PLC的ModbusTCP速度到底能跑多快?

别被忽悠了,主流PLC的ModbusTCP速度到底能跑多快? 干了这么多年自动化,经常有兄弟问我:"哎,用ModbusTCP和PLC通信,到底能跑多快?100毫秒够不够?"每次听到这种问题,我都得先深吸一口气。因为这个问题真不是一句话能说清楚的,但很多人就想要个确切数字。那行,我先给个能应急的答案:在局域网环境里,大部分主流PLC单次请求的响应时间,基本都在10毫秒以内。你做个上位机,100Hz的刷新频率,一般没啥压力。但你要是真信了这个数字,就直接去搞项目了,那我劝你悠着点。因为我踩过的坑,比你想象的多。第一个坑:你以为的速度,其实是PLC的"零花钱"先说我测过的那些牌子。西门子、三菱、施耐德、汇川、欧姆龙……市面上能见到的,我基本都上过手。有个测试挺能说明问题:同样的条件,循环读10000次,每次读100个保持寄存器。结果呢?大家都挤在10ms这条线附近,谁也别说谁快得飞起。但这里有个反直觉的事儿——读1个寄存器和读100个寄存器,时间差不了多少!我第一次发现的时候还以为是程序写错了,后来反复验证才发现,ModbusTCP的报文头开销才是大头,真正干活的那点数据量,对PLC来说就是洒洒水。所以你要是写上位机程序,别傻乎乎的一个寄存器一个寄存器地读,攒一批一起读,效率能翻好几倍。这经验我拿好几瓶啤酒换来的。第二个坑:PLC的"偏心眼"设定这个坑最要命,也最容易被忽略。拿西门子S7-1200举例,有个参数叫"通讯负载",默认值好像是15%。什么意思呢?就是说PLC把自己当亲儿子,把通信任务当干儿子,CPU时间分配是85%干正事儿,15%伺候通信。你猜怎么着?我把这个参数从15%调到50%,好家伙,通信实时性肉眼可见地变流畅了,趋势图从波浪线直接变直线。
返回列表