dathlin / HslCommunication

A very popular industrial Internet of Things communication plug-in. Using this dll can be very convenient, stable, and fast to obtain data from PLC equipment of multiple brands, and also supports redis, mqtt, websocket, etc., which can let your data on the network Free transmission, reducing enterprise development costs.
http://www.hslcommunication.cn
1.61k stars 622 forks source link

java在使用AB CIP协议API批量读取的时候长度超过30会报错误“目标收到一个无效长度的信息。” #34

Open sjdGitHub opened 1 year ago

sjdGitHub commented 1 year ago

您好,我在使用AllenBradleyNet.Read方法进行AB plc测试批量读取的时候,发现读取点位数没超过30的时候能够正常读取,但是一超过30就会报“目标收到一个无效长度的信息。”这样的错误信息,请问,这是因为长度做了限制吗?如果做了限制的话,假设plc有非常多的点位又该怎么去一次性读取呢?以下是方法测试的调试过程截图: 成功的: success 失败的: fail

dathlin commented 1 year ago

这个是协议层的限制,你这里既然是同一个标签,直接读取数组比较合适 比如你的类型是int,那么使用 ReadInt32("DINT[1001]", 30);

sjdGitHub commented 1 year ago

这个是协议层的限制,你这里既然是同一个标签,直接读取数组比较合适 比如你的类型是int,那么使用 ReadInt32("DINT[1001]", 30);

谢谢您的回复,这里这一批确实是同一个标签,但是实际的plc中还是有很多不是同一个标签以及很多不连续的,那只能分批去处理咯?