thingstodo
Member
Overview
I have 3 registers, 32 bits each, to log to a CSV file. And I'd like 'THE PROGRAM' to read 4 registers and write the data (first 3) to CSV if the last two registers do not match. If the data is logged, I'd like to take register 3 and write it to the PLC at register 4 so that the PLC can index to the next set of data. I would like to create a new CSV file for each day, or if the program is stopped during the day, to start a new one each time it starts within the day.
I'd like to have 12 copies of this program running, since I have 12 PLCs to log data from.
I have a proof-of-concept 'sort of' working in excel with RSLinx gateway and DDE. I can't take datalogging with Excel seriously as a permanent solution. It's got to be reliable if it is to be useful. I can run one virtual machine (VM) for each instance if required.
Details
I have 12 Controllogix PLCs networked with ethernet across several buildings. The date and time are synchronized across the PLCs to plus or minus about 10 ms. I have data logged, complete with time and date stamps, in each PLC. Each of the PLCs has a circular buffer of 5000 status or alarm changes. The data is cycled through a single set of 4 contiguous 32 bit (double integers) as described above. Register 3 is the timestamp, register 4 is a read-back. In each PLC, when register 4 matches register 3 (readback), new data is moved to the 3 data registers if it there are more data changes in the queue. If not, nothing happens until a data change is detected.
Every solution that I have found to purchase so far timestamps the data when it arrives at the PC. This is not useful unless I can export that data to a CSV and process it to insert the REAL date and timestamp. The order that things happen is important to me, not just that they occurred.
Most of the DIY solutions involve Excel and DDE. I have had trouble keeping DDE and Excel running together, and figuring out when it stops working, for many years (Our lab guys love to use Labview and Excel. It works great in a lab, when supervised)
I was able to do this task with a distributed system of 186 Modicon A120 PLCs gathering data, reporting it via dial-up modem, to a custom modbus driver running Factorylink HMI software on a VAXstation (mainframe) in 1991. This task HAS TO BE POSSIBLE!
Available to help accomplish this task:
- RSLinx Gateway - allows communication to all of the PLCs if OPC or DDE are used
- Matrikon Datamanager (which does OPC server and client tasks)
- a VMWare ESX server - I can run several Virtual Machines, one per PLC if required. It has sufficient storage, memory, and horsepower
- a lightly loaded 100 MB ethernet network
All of the Rockwell (PLC vendor), Emerson (DeltaV Vendor), Matrikon (OPC vendor), OSI (Pi database vendor) solutions have issues. Most timestamp the data when it arrives at a PC. Those that don't still POLL the data and timestamp it locally instead of accepting the timestamp as PART of the data. Some have a limit (20 tags) to the number of tags that can be polled at a high data rate (50 ms). A number of them will not export to a simple CSV. They will tie to ODBC ... but putting this data into a SQL server or an Oracle database just so that I can get it into a file is a bit of overkill. The tie via ODBC preserves the useless timestamp when tied to a PI database.
Any suggestions would be appreciated. The perfect solution would allow me to try it before I buy it. I have no dedicated budget for this. If there is a supported and documented solution for less than $10K, I'm pretty sure that I can sell it to management. The data that I collect has proven very valuable for troubleshooting but right now I am the only one that can reasonably dig through logs in different PLC memory and correlate it.
If anyone is still reading
Each PLC is logging EVERYTHING that happens. Inputs and outputs going on or off, start and stop commands from the HMI, analog alarms, etc. Across the 12 PLCs there are 700 motors and 150 gates/valves. This includes the electrical substations and power monitoring.
When something strange happens (which seems to happen between once a month and twice a day) I need enough information to figure out what happened. Then I can figure out if it can be fixed, what it will cost. And then someone can decide if it is worth the money. It would be nice if more people had access to this information ... and if it took me less time to gather it and process it.
I would like to take the files from the PLCs in question (if I can remove any), append them together, sort them by date and time, and the select point numbers (every status and every alarm from every PLC has a unique number) to monitor. Use grep to pull these to a file. Use a utility (that I'll have to write later) to put the CSV data into the correct format for import to the DeltaV/PI historian and import it to the public debug terminal. Trend everything on as many charts as required, then figure out what happened and if more data is required.
The only solution that someone has come up with (it was online a while ago, not this site though?) was essentially a dedicated ethernet data logging network with a dedicated Rockwell Factoryview system. It sounded like his solution works ... but at a much higher price. This solution was estimated by one of our vendors at $130K.
I have 3 registers, 32 bits each, to log to a CSV file. And I'd like 'THE PROGRAM' to read 4 registers and write the data (first 3) to CSV if the last two registers do not match. If the data is logged, I'd like to take register 3 and write it to the PLC at register 4 so that the PLC can index to the next set of data. I would like to create a new CSV file for each day, or if the program is stopped during the day, to start a new one each time it starts within the day.
I'd like to have 12 copies of this program running, since I have 12 PLCs to log data from.
I have a proof-of-concept 'sort of' working in excel with RSLinx gateway and DDE. I can't take datalogging with Excel seriously as a permanent solution. It's got to be reliable if it is to be useful. I can run one virtual machine (VM) for each instance if required.
Details
I have 12 Controllogix PLCs networked with ethernet across several buildings. The date and time are synchronized across the PLCs to plus or minus about 10 ms. I have data logged, complete with time and date stamps, in each PLC. Each of the PLCs has a circular buffer of 5000 status or alarm changes. The data is cycled through a single set of 4 contiguous 32 bit (double integers) as described above. Register 3 is the timestamp, register 4 is a read-back. In each PLC, when register 4 matches register 3 (readback), new data is moved to the 3 data registers if it there are more data changes in the queue. If not, nothing happens until a data change is detected.
Every solution that I have found to purchase so far timestamps the data when it arrives at the PC. This is not useful unless I can export that data to a CSV and process it to insert the REAL date and timestamp. The order that things happen is important to me, not just that they occurred.
Most of the DIY solutions involve Excel and DDE. I have had trouble keeping DDE and Excel running together, and figuring out when it stops working, for many years (Our lab guys love to use Labview and Excel. It works great in a lab, when supervised)
I was able to do this task with a distributed system of 186 Modicon A120 PLCs gathering data, reporting it via dial-up modem, to a custom modbus driver running Factorylink HMI software on a VAXstation (mainframe) in 1991. This task HAS TO BE POSSIBLE!
Available to help accomplish this task:
- RSLinx Gateway - allows communication to all of the PLCs if OPC or DDE are used
- Matrikon Datamanager (which does OPC server and client tasks)
- a VMWare ESX server - I can run several Virtual Machines, one per PLC if required. It has sufficient storage, memory, and horsepower
- a lightly loaded 100 MB ethernet network
All of the Rockwell (PLC vendor), Emerson (DeltaV Vendor), Matrikon (OPC vendor), OSI (Pi database vendor) solutions have issues. Most timestamp the data when it arrives at a PC. Those that don't still POLL the data and timestamp it locally instead of accepting the timestamp as PART of the data. Some have a limit (20 tags) to the number of tags that can be polled at a high data rate (50 ms). A number of them will not export to a simple CSV. They will tie to ODBC ... but putting this data into a SQL server or an Oracle database just so that I can get it into a file is a bit of overkill. The tie via ODBC preserves the useless timestamp when tied to a PI database.
Any suggestions would be appreciated. The perfect solution would allow me to try it before I buy it. I have no dedicated budget for this. If there is a supported and documented solution for less than $10K, I'm pretty sure that I can sell it to management. The data that I collect has proven very valuable for troubleshooting but right now I am the only one that can reasonably dig through logs in different PLC memory and correlate it.
If anyone is still reading
Each PLC is logging EVERYTHING that happens. Inputs and outputs going on or off, start and stop commands from the HMI, analog alarms, etc. Across the 12 PLCs there are 700 motors and 150 gates/valves. This includes the electrical substations and power monitoring.
When something strange happens (which seems to happen between once a month and twice a day) I need enough information to figure out what happened. Then I can figure out if it can be fixed, what it will cost. And then someone can decide if it is worth the money. It would be nice if more people had access to this information ... and if it took me less time to gather it and process it.
I would like to take the files from the PLCs in question (if I can remove any), append them together, sort them by date and time, and the select point numbers (every status and every alarm from every PLC has a unique number) to monitor. Use grep to pull these to a file. Use a utility (that I'll have to write later) to put the CSV data into the correct format for import to the DeltaV/PI historian and import it to the public debug terminal. Trend everything on as many charts as required, then figure out what happened and if more data is required.
The only solution that someone has come up with (it was online a while ago, not this site though?) was essentially a dedicated ethernet data logging network with a dedicated Rockwell Factoryview system. It sounded like his solution works ... but at a much higher price. This solution was estimated by one of our vendors at $130K.