AdvancedHMI Software
General Category => Support Questions => Topic started by: BLFTech on May 22, 2015, 07:36:54 PM
-
I get the error code in the attached picture when I attempt to read 1 tag in a ControlLogix controller into one Basic Label. It works in version 3.98g
-
This problem is down in the lower layers of the protocol. It will be fixed in the next version. In the mean time, you can put this condition around everything in the routine:
If Requests(e.TransactionNumber And 255) IsNot Nothing AndAlso Requests(e.TransactionNumber And 255).Count>0 then
.
.
.
End If
-
That does prevent the error, but also prevents any reads and writes with the processor.
-
That routine is only called when a connection can be established or the connection drops. Can you do a WireShark capture?
-
You can also put a breakpoint in that routine and when it goes to the break point, examine the e object. There should be an e.ErrorCode and e.ErrorMessage
-
I just did that and the error ID is -1 and the message is "check processor slot"
The processor is in slot 0 so I am unsure why I am getting the error.
-
Can you start WireShark then start the app and post the result. From that I can see exactly what is happening.
-
Here is the Wireshark capture. The PC is 192.168.1.2 and the PLC is 192.168.1.20
-
It is failing for an invalid connection size. Version 3.98j increased the packet size from about 220 to 511 in order to read more data with less requests. I'm finding that not all hardware supports this. What processor are you connecting to?
-
I am using an Older 1756-L55 processor for testing. What are going to be the part numbers no longer supported in the ControlLogix and CompactLogix platforms?
-
What are going to be the part numbers no longer supported in the ControlLogix and CompactLogix platforms?
It will be a trial and error process to figure out which processors support what connection size. I will then either have to document them all and allow that to be changed by the driver properties or have the driver detect the processor and adjust it accordingly. The default size is now 511 bytes in order to allow maximum speed.
-
Can I decrease that setting and test it? Where is that setting at?
-
I thought I posted the code above, but I must not have clicked the post.
In EthernetIPforCLXCom.vb at line 125, add this one line of code:
DLL(MyDLLInstance).ConnectionPathPort = 1
DLL(MyDLLInstance).ProcessorSlot = m_ProcessorSlot
DLL(MyDLLInstance).ConnectionByteSize = 510
Try different values for ConnectionByteSize. The maximum is 511, but 200 seems to work for everything.
-
It will be a trial and error process to figure out which processors support what connection size. I will then either have to document them all and allow that to be changed by the driver properties or have the driver detect the processor and adjust it accordingly.
Creating a driver property sounds like acceptable solution for any driver (if possible of course). With working DefaultValue to resort to, and possibly a warning popup when users try to change this value, would let users test limits of their own hardware.
-
When I add that line of code I get the error message "ConnectionByteSize is not a member of 'MfgControl.AdvancedHMIDrivers.CIPforCLX'
-
When I add that line of code I get the error message "ConnectionByteSize is not a member of 'MfgControl.AdvancedHMIDrivers.CIPforCLX'
Sorry....My mistake. When I tested that line of code, I was in the next unreleased version. I will add a ConnectionSize property to the driver and post version 3.98k tonight.
-
OK, thanks Archie for the fast response.
-
I posted version 3.98k, but did not make it the default download project yet. I want to have it tested a little before I do. You can go to the files on Sourceforge to get it:
https://sourceforge.net/projects/advancedhmi/files/advancedhmi/3.5/