pycomm3 icon indicating copy to clipboard operation
pycomm3 copied to clipboard

[BUG] - very high communication time in SLCDriver PLC Micrologix 1400 Series B

Open QuakeString opened this issue 3 years ago • 3 comments

PLC Micrologix 1400 Series B Model: Bul. 1766 my code is with SLCDriver('192.168.1.10') as plc: cpl = (plc.read('B3:150/5', 'F8:5', 'F8:6', 'F8:7', 'F18:0', 'F18:1', 'F18:2', 'N7:150', 'N7:161', 'N21:16', 'B3:160/11', 'B3:160/10', 'B3:24/2', 'B3:160/12', 'B3:52/1', 'N21:10', 'N21:11', 'N21:12', 'N21:13', 'N21:14', 'N21:15', 'N21:23', 'L23:0', 'N21:21', 'N21:22' )) its taking 1.5 to 1.9 sec to cycle. is it normal ? here is log file pycomm3.log

QuakeString avatar Aug 30 '22 12:08 QuakeString

I see a pattern that it trying to "Attempting an Extended Forward Open.." but its failing and then it trying to open as "attempting standard Forward Open" so can I buypass the Extended forward open ? and do it as standard mode, as it is possible in LogixDriver

QuakeString avatar Aug 31 '22 15:08 QuakeString

Yeah, the both SLC and Logix drivers are subclasses of CIPDriver, so you should be able to do plc._cfg['extended forward open'] = False to disable it. It should be disabled the SLC driver since it will never work, so that is an oversight.

Eventually I'm going to have a v2 of this library that will change how the configuration is handled, but for now you'll have to use this method and the private variable. Please leave this issue open so I don't forget about this and disable it by default in the next release.

ottowayi avatar Sep 01 '22 20:09 ottowayi

Also, these devices do not support multi-requests, meaning each address you do in the read method will be it's own request. You can reduce the number of requests by reading multiple elements at a time. Like N21:10{10} should return a list of 10 elements from N21:10 to N21:19.

ottowayi avatar Sep 01 '22 20:09 ottowayi