I have used subscriptions so many major processes in my application are boosted in speed. But there is still a bug(May be) in subscribing to multiple Tags using same instance of EthernetIPforSLCMicroCom. I am working on creating a solid code example so that it can be reproduced for you to test. The primary observation is
1.
EthernetIPforSLCMicroCom PLCconnection;
PLCconnection.SubscribeToPlcValues("F20:0", 90, 100, CallBackHandler); (C#)
with or without
PLCconnection.SubscriptionDataReceived += DataReceivedHandler (C#)
In some cases "DataReceivedHandler" is called while in others "CallBackHandler" is called. Again I'll put up a code that can reproduce this.
2. Once a "Read failed:No Response" exception occures (With my current PLC this is more frequent) The Polling is stopped and need to re-initiated. (If we can predict if PLC connection is lost or is too busy to respond we can wait and avoid this. But Currently there seems to be no way of doing this. )
3. If more than 1 subscription with single instance of EthernetIPforSLCMicroCom. Only 1 is called(preferably 1st one). Others are ignored. Again Not Confirmed when, will put up code.
Now the Question remains,
1. Can we do somthing like check if EthernetIPforSLCMicroCom.IsConnected (available to Read and write)? if there is other way to this, its Most welcome...
2. Can we replicate polling like RSLinks receive from PLC. (All Setup tag(F's N's I's, O's, C's etc) values are polled every 100ms)? Cause we definitly need a lot of tags as we have like 10 different cycles running at a time in single PLC consuming Multiple Timers, Counters, PID's and all sort of hardwares values each.
If these 2 things Happen I think you'll have answered Half the PLC world issues
Thanks,
Dhananjay