I have tried two different ways to handle reading and writing data records to/from a compactlogix plc. On both the client event tag change script, and the triggered transaction I cannot get reliable increments through my data. Here is what I have tried:
I have a data structure in the PLC that is basically a record that I would like to store in the datatable. I have an array of 100 of these structured records that the PLC moves one by one into a single structured register for Ignition to grab and store. The PLC sets an integer to the value of 2 to trigger the transaction. The first transaction operates successfully after which the trigger settings set the same integer to 0 via the successful handshake setting on the trigger folder. The PLC moves the next record into the data location and sets the trigger integer back to 2; however, the transaction does not trigger. My guess is that the move and change of trigger value is too fast in the PLC for the transaction to recognize a change. How can I get this to work? I can get the data if I manually disable and enable the transaction and uncheck the prevent trigger on start.
I have tried using an event to dump data to the PLC. I am also using an integer to trigger this event. I have a script that sends the first record to the PLC and sets the trigger integer to 1 after which the PLC internally stores the data to the correct location. The PLC then resets the trigger to 0. An client tag change script is set to look for this integer to go to 0 and perform the dump of the next record. Unfortunately Ignition does not always recognize the change of the tag and the tag change script is only run sporadically. If I edit and save the the trigger tag in Ignition, I can nudge the script into running again after which it usually will hang again a few records later. Any ideas on this?
Thanks in advance,