Earlier in the week we described what the DataStore Plus ActiveX was. Today we walk you through the steps you need to take to add it to a FactoryTalk ViewStudio Machine Edition project.
Basic steps to setup the DataStore Plus ActiveX in ViewStudio:
- Create and configure a new “on top” display to host the DataStore Plus ActiveX
- Add and configure the DataStore Plus ActiveX to the new display
- Set the DataStore Plus display as the project's new initial graphic
- Configure the DataStore Plus display to load your original initial graphic display by:
- Creating an HMI Tag
- Assigning the HMI Tag to the Global Connection's “remote display number”
- Create and assign two macros
- Create first macro to trigger original initial graphic by setting the HMI Tag to the original initial display's number
- Create second macro to reset the HMI Tag to “0”
- Assign the first macro to the DataStore Plus “on top” display's startup macro setting
- Assign the second macro to the original initial display's startup macro setting
Now on to the detailed steps:
DataStore Plus Step 1:
The first step to using DataStore Plus is to create a new graphic display in your project to “host” this ActiveX. To do so, create a new graphic display with these display settings:
On the General Tab
- On Top
- Cannot be replaced
- Display Number 999
- Maximum Tag Update Rate of .25
- Specify Size of 400 width and 400 height
- X and Y position of -401 and -401 (off the visible screen)
Note: Below is a picture of my display settings:
Explanation of above settings:
Since we want the DataStore Plus ActiveX to run while the PVPlus project is running, we need to keep the display it's on open at all times. One way to accomplish this is to set the display as “always on top,” and “cannot be replaced.” However, we don't actually need to see this display, so we also position it out of the visible pixel range with a negative X Y position.
DataStore Plus Step 2:
Now that our graphic display is created, we need to add the DataStore Plus ActiveX to it. To do this, choose ActiveX from the Objects Menu:
Click and drag a box on your display. When you release the mouse, you'll be prompted to choose an ActiveX – choose the ME DataStore Plus ActiveX and press OK:
This is now what your graphic display screen should look like:
Next, double click on the DataStore Plus object and set the general settings to meet your preferences (mine are shown below:)
Do the same on the Advanced tab (my advanced settings are shown below:)
Finally, on the Connections Tab you'll need to fill in the “File Location” (includes file name and CSV extension,) “Trigger” (this acts as an enable,) and add at least one real or string tag (my settings are shown below:)
NOTE: “FileLocation” can either be a String Tag which contains the full path and file name for your CSV file, OR it can be the actual full path and filename included within quotes as shown below:
Next press Apply and OK, then save your screen with a memorable name (I saved mine as DataStore Plus)
DataStore Plus Step 3:
In this step you need to set your DataStore Plus display as the new initial display, after recording what the initial display is currently set to. This is done in “Startup”
DataStore Plus Step 4:
Now that our DataStore Plus display is setup as the initial display, it will launch when the project runs. However, if we do nothing else we'll be left with a blank gray screen.
So our next step is to setup our DataStore Plus display to launch our original initial display. To do this, we first need to create a new HMI tag as shown below:
Now let's set our new “RemoteDisplayTag” to be the Global Connection's “remote display number” tag as shown below:
DataStore Plus Step 5:
Now we need to create two macro's. One to change our “RemoteDisplayTag” to the number of our original initial graphic display (in my case “1”.) And another to reset it back to “0” so the operator can navigate to other displays.
Below is the first of the two macros we must create. This is the one our DataStore Plus screen will trigger after opening, to then trigger the opening of our original initial display.
Note: Changing the tag associated with the Global Connection for “remote display number” to “1” will cause the system to display the graphic display with that corresponding display number. However, the operator will not be able to navigate away from that screen until the “remote display number” is changed back to “0”
Note: Always be sure when implementing “remote display number” that all your displays have a unique “display number” in display settings.
Below is the second macro we must create. It will be launched by our original initial display to reset the “remote display number” tag to “0” so the operator can navigate to other displays:
Our final step is to set our two displays to run the appropriate macros.
First, on our DataStore Plus display we need to open the display settings. Then on the Behavior Tab we add our “Macro_GotoMainScreen” to the Macro Startup field as shown below. When done press OK, then save and close the display:
Next, we need to open our original initial display and on the Behavior Tab in the display settings we need to add “Macro_ResetRemoteDisplay” to the Macro Startup field as shown below. When done press OK, then save and close the display:
At this point we've successfully added the DataStore Plus ActiveX to our project. Once we run our project we can open Windows explorer to look for our next CSV datalog file. Just navigate Windows Explorer to the location specified in the DataStore Plus ActiveX's “FileLocation” property, and you should see the first CSV log file.
If you open the file in Microsoft Excel, you should find data similar to what you see in my file below:
That's it for DataStore Plus ActiveX step-by-step. If you have any questions or comments please don't hesitate to let us know by either using the “post a comment or question” link below, or by contacting us directly using the “Contact” link at the top of this page.
- I would like to know if the methods outlined in this thread are so data captured historically could be sent to ao USB or SD Card for extraction later via csv file format. Is this true? How would you be able to remove the device when you want to see the data without harming the process?
CarissaJust wanted to give whoever is reading this a heads up. I ran into this in the field, and found that these ActiveX objects are NOT intended to be used for "On Demand" logging, meaning they are not intended for the PLC to actually trigger the individual logs. It was designed to be a purely TIME-BASED logging setup, where the "Enable" is supposed to be left on for long periods of time. The reason for this is that if the Enable is not set during the midnight transition, the object will not make a new file for the next day, but instead continue writing the log entries in the previous day's file, until the log enable just so happens to be enabled during that transition, and only THEN will it create a new file. I wrestled with this for months, unable to explain why the files would seemingly just randomly generate, but there would be several days to several weeks' worth of entries in a single day's file. There was no rhyme or reason to when the system would generate a new file, and as far as I could tell, I had it set to start a new file every day, so my work was done.
Then, finally, I found the technote that mentions the midnight transition, and how logging has to be enabled during this in order to facilitate the file name change. I was logging at intervals that included midnight anyway, but since the time between the HMI and PLC is not always perfectly synced, I just extended the time to ensure they'd be on at midnight. Unfortunately, I would create situations where there would be "multiple logs" for certain times. At any rate, it wasn't a "clean" solution.
But, I did find a workaround that, as far as I have lab tested so far, seems to work well. In a nutshell, you take the file name control away from the ActiveX Object and give it to the PLC. By periodically (about once an hour) syncronizing my PLC and HMI clocks, I can make sure new files are created and the entries are stored in the correct day flawlessly and cleanly. In the PLC, I create several string tags and, using conversion and concatenating instructions, "assemble" the log file name in the program, based on the current date. I then point the field in the ActiveX setup to that tag instead of typing it out. This also gives me the option to easily change where the file goes on the fly, in case my customer connects the HMI to their network and wants those log files to go onto a server folder, without having to edit the HMI program.
I tested it out in the office here, and it worked wonderfully. I was able to change my PC's date, and it created a new file. I even changed the date back, and the object would simply append the existing file with the new entries.
If you're using this to log data on an "On Demand" basis, this is the way to do it.Thanks for sharing your experience brstilsonNot sure how I missed your post but I do believe the newer versions of this ActiveX has been upgraded to address this?
Before that, we would use a batch file on the memory stick to "copy" the csv file from the internal storage to the USB stick like I show here: