I am looking for a way to log every I/O change in a PLC for troubleshooting. I have come us with a solution but would like to know if anyone else is doing this or has ideas.
What I am trying to do is record in a database (like SQL server or Access) ever change of real world I/O. I can used Visual Basis to communicate with the PLC and record values. What I have come up with is to look at 16 I/O points as a word. When this changes in any way write it to a register in the PLC, also record the date/time in another register. The register tables will be quite large. So the list will grow, then when it gets to the end start back at the beginning, a circular buffer. The VB program will look at these registers and then write then to a database, I will have some handshaking to make sure that I only record new records. Also I will have a pointer to tell which I/O word they are looking at, and VB will record it in the DB as a binary number so each point can be seen. If Access is used I will make a new DB every day. Then if there was problem we can go back and look to see what happened. There could be up to 160 words or 1600 I/O points.
This is what I have come up with so far, any ideas?