Buffering Data for Wonderware logging

cleeton

Member
Join Date
May 2010
Location
Everett, WA
Posts
50
I've got a system that consists of a A-B ML1500 with a bunch of thermocouple input cards. The PLC is located in a nasty environment, smoke, heat, water. So there is a PC with wonderware located remotely for logging and displaying temperatures. The ML1500 is connected to a NET-ENI which is connected to a netgear wireless access point, the PC is also connected to another netgear wireless access point. (they are separated by about 250'). So the issue is that we lose communications randomly, and since the data collection, time-stamping, and archiving is all being done at the Wonderware end, no data is collected while the communications is down. I'm looking for suggestions on how to buffer data in the PLC and then transfer it to the wonderware logs when communications returns.
My AB PLC experience is fairly good, but my wonderware knowledge is very limited.
 
I'm not sure that the tools you currently have will allow you to circumvent your problem.

Storing data into a buffer in the PLC is not all that difficult. A large array to hold the buffer'd data and logic to place the data into the buffer and release it out of the buffer is all that is required, however....

To release data from the buffer you would need some way to confirm that Wonderware actually captured the data, I don't know that you can get a handshake from Wonderware Data logging to allow the release of data once received. This is where I think you'll get stuck.

Also, do you require a timestamps when the buffered data was collected? If so, how would you sync that time stamp to Wonderware? Wondware data logging is triggered when a data value changes, it's not periodic. As you pulled data out of the buffer, it would be recorded by Wonderware and looks like it instantly changes (really time time it took to collect the data from the buffer).

I think you are better off trying to correct the communication problem. The solution to that is to nix the wireless and put in a hardwired network. Probably easier and cheaper to go this route.
 
I'd love to fix the comms but...

I'd love to have a cable between the buildings, but it would involve a lot of concrete cutting and ditch digging. Thinking about looking into different wireless technology.
The problems with timestamping that you mention were my concerns as well. I can conceive of how to handle unloading the buffer and handshaking, but I'm not familiar enough with wonderware's data logging to know if I could ceate the timestamp from the PLC and force wonderware to use those points.

This is a slightly different twist for me on trying to code my way around a physical/mechanical problem... yes I've read the PLC Law thread, I can't remember which number it is I'm breaking though.
 
Wonderware will only use time stamp on when WW receives the data. You cannot edit or "correct" the time stamp. There is a very important reason for this time stamp to be secure.

"Handshake"?
Usually..... to monitor comm between WW and the PLC, I run a timer in the PLC and let WW reset it when it gets to a certain count. Ie....PLC Timer is in msecs and goes to 2000. At 500, I reset count from WW back to 1, if count gets to 2000 then I alarm on lost communications.

I would recommend a better wireless technology. There are some very good industrial solutions, that are more solid.

I don't know what your layout is, if you have more than 1 system on your WW app, and if you are using WW Historian (SQL) or the standard WW LogHistory file (.lgh) database for storing data.
However....
You could use 2 Wonderware systems (add 1 in remote location to save history). You CAN "merge" SQL and Wonderware log databases (.lgh files) between the 2 WW systems.
You can also use relocate the WW pc to the remote location and use remote log in software to connect to the remote WW pc.

..
 
I previously tried to "fix" the NET-ENI with a watchdog timer like you mention. The PLC sends a soft reboot cmd to the ENI if the comms times out which has helped when the ENI locks up because it doesn't properly release connections.
The wonderware layout is one standalone PC, using the WW LogHistory (.lgh file). A person physically goes to the PC and views the data, and prints records they are interested in. I'd like to move the PC into the building with the PLC, but it is a live fire training facility and the customer has said there is no way they want to try to keep a PC running in that environment.
The idea of merging databases sounds promising, I might be able to sneak a small monitorless industrial PC into the panel without too much fight.
 
To save on the cost of another WW license.....
You could mount PC in remote location and use "Remote Desktop" to operate it and view/control WW.
Another idea may be to use a KVM switch to control remote PC. The keyboard and monitor can stay in original location and pc in remote location. You can get KVM switches that work over IP.
 
Last edited:
The customer really objects to putting a PC in the harsh environment, and less secure building. We're now considering a control panel installed Data Logger. The only thing I've come up with that will easily read AB registers are the Red Lion Data station units. My understanding is the logs could be stored to Compact Flash then downloaded to a PC periodically, (via CF card swapping, USB or Ethernet). But then how do you analyze the data, I'd rather not just give the customer a CSV with 100,000 entries and tell them to figure it out. Anybody have some good software for trending data that would allow things like turning pens on and off, adjusting time range. And require very little setup by the user.
 

Similar Topics

Hi guys, I am new to the forum and Rookie PLC Programmer. I did start programming a bit of RsLogix500, Studio 5000 and Step 7 V16 and still...
Replies
7
Views
1,702
Hi all I have a project to convert a Micrologix1500 with onboard IO and IO extension modules to a Compactlogix 5069_l306ER with 2 local 16point...
Replies
4
Views
2,608
I have always used mapping to buffer IO to avoid random program hiccups caused by changing inputs in the middle of a program scan. Now I am doing...
Replies
8
Views
4,019
I am having a hard time understanding how using a reference tag (a buffer) would prevent the I/O value changing in the middle of a program...
Replies
4
Views
3,117
Traditionally I create buffer routines to read all inputs into a new tag, and conversely, the output buffers to the actual output tags. However I...
Replies
4
Views
2,574
Back
Top Bottom