You are not registered yet. Please click here to register!


 
 
plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
 
Try our online PLC Simulator- FREE.  Click here now to try it.

---------->>>>>Get FREE PLC Programming Tips

New Here? Please read this important info!!!


Go Back   PLCS.net - Interactive Q & A > PLCS.net - Interactive Q & A > LIVE PLC Questions And Answers

PLC training tools sale

Reply
 
Thread Tools Display Modes
Old February 13th, 2018, 09:52 AM   #1
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
Writing values from Wonderware only when NEQ

I am using Wonderware as a SCADA host, and am using messaging to read data from ML1100's to a CompactLogix L30ER. I have been experimenting with writing data back to the 1100's but I can't seem to find a good way to write only values that I have changed in WW.

For instance: I have set it up so that it reads/writes every other rung to the PLC it's communicating with. But I really only want it to write when I change a setpoint in WW. Anybody have some samples or ideas on this?

Thanks,

Todd
  Reply With Quote
Old February 13th, 2018, 07:37 PM   #2
defcon.klaxon
Lifetime Supporting Member
United States

defcon.klaxon is offline
 
Join Date: Feb 2015
Location: Far NorCal
Posts: 386
Hi Todd,

Can you provide a little more description for what you're doing? Why would you only want to write when you change the value, instead of just having the tags linked directly? If I can wrap my head around what you're trying to do, I may be able to help.
  Reply With Quote
Old February 13th, 2018, 08:19 PM   #3
Aardwizz
Member
United Kingdom

Aardwizz is offline
 
Aardwizz's Avatar
 
Join Date: Dec 2017
Location: Swindon
Posts: 128
Quote:
Originally Posted by Tpetie3509 View Post
I am using Wonderware as a SCADA host, and am using messaging to read data from ML1100's to a CompactLogix L30ER.
Are you saying that you are trying to have Wonderware read from the Micrologix and write to the CompactLogix? I've seen SCADA's used as cheap protocol converters or network bridges, but why not have the the two PLCs talk directly to each other? Or is that what you mean by "using messaging"?

Please be more specific about what your are trying to accomplish ("what 'success' looks like), not the methods you are using to accomplish your goal ("what the path to success is").


Quote:
Originally Posted by Tpetie3509 View Post
For instance: I have set it up so that it reads/writes every other rung to the PLC it's communicating with.
This sentence makes no sense: Wonderware writes tags, not "rungs".


Quote:
Originally Posted by Tpetie3509 View Post
But I really only want it to write when I change a setpoint in WW.
As I understand them, in order to keep bandwidth to a minimum, Wonderware's various drivers ONLY do their writing on a data change (although they read at an assigned update frequency).

All that being said, you might want to look into a "Data Change" script. If you're application is such that, when you change a setpoint on an HMI screen for a tag linked to the Micrologix that it also changes a setpoint in a CompactLogix tag, then a "Data Change" script can monitor the value of the ML tag, and set the Cpx tag to the same value quite easily.
  Reply With Quote
Old February 14th, 2018, 09:05 AM   #4
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
Sorry for the misinformation on my end. I will try to explain what I am working with and what I am looking to accomplish.

Currently, Wonderware is pointing at several different nodes out in the field that are all communicating via ethernet radio. There is no sequential polling in WW so I am implementing the CompactLogix controller into the system to do the "heavy lifting" for the system using messaging to communicate from WW>CompactLogix>ML1100 at node and vise versa.

Currently, I have written logic for both read/write messages to and from the CompactLogix and each ML1100 and set up the heartbeats.

What I want to know is, will this constant writing of values to the controllers be a problem? What I mean by that is say I have a setpoint and I have it set at a certain value, that value will be written each scan from the Master to the remote controller and will never change unless I change the tag value in the HMI. Is there any issues I'm creating by doing this or is this standard operating procedure for this type of application?

I may be overthinking it, thanks for being patient.
  Reply With Quote
Old February 14th, 2018, 09:45 AM   #5
dwoodlock
Member
United States

dwoodlock is offline
 
dwoodlock's Avatar
 
Join Date: Nov 2012
Location: South Carolina
Posts: 394
You can use a comparator to look at what value is in the WW interface and compare it to what's in the compact, or micro. Only activate the move instructions if the input and destination don't match. You basically are creating a one shot for data transfer.

You will now only execute a compare and possibly 1 group of moves, instead of x-number of moves every cycle.

Not sure if you would run into problems or not even if you stuck to just activating all the moves every cycle. However I also tend to try and make things work more efficiently, so I can understand why you would do it.
  Reply With Quote
Old February 14th, 2018, 10:33 AM   #6
Bit_Bucket_07
Member
United States

Bit_Bucket_07 is offline
 
Bit_Bucket_07's Avatar
 
Join Date: Feb 2013
Location: Southeast US
Posts: 1,384
It's not terribly complicated to only send a PLC to PLC message upon exception. You simply need to copy the contents of your message data register to a holding register each sweep and then only trigger the MSG function when the message data register is not equal to it's value during the previous program sweep, which is stored in your holding register.
__________________
  Reply With Quote
Old February 14th, 2018, 10:48 AM   #7
Saffa
Member
New Zealand

Saffa is offline
 
Join Date: Feb 2012
Location: Bay of Plenty
Posts: 834
We have several dozen ML1400 and 1100 PLCs deployed in a similar topology.

Your arrangement works fine as long as all your Setpoints come from the Master only. If you have a local HMI at each remote, that you want to use to change setpoints or toggle bits, And those same setpoints come from the master, then you have an issue.

In this scenario i normally give them local and remote setpoints. They have a button to copy remote to local. They can then switch to local control and modify. If they want to keep those setpoints, they ring up the control room or access the SCADA remotely and i have a button for "update from local setpoints" for each site. That fires off a read of the local setpoints by the master, which then copies them into it's "normal"setpoints database.

Hope that makes sense!
  Reply With Quote
Old February 14th, 2018, 11:37 AM   #8
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,732
In all the cases I work with using radio telemetry, it is necessary to read and write at least one or two values on every pass. It also takes very little extra time and effort to just read and write the whole chunk, so I have not done any "report by exception" yet.

If I get into a cell modem based system where data u$age comes into play, I would definitely alter my logic to conserve bits and bytes transmitted, but have not crossed that bridge yet and will probably use MQTT or similar protocols if/when that happens.

Also, your wonderware application (using normal data entry objects) is not writing constantly to the PLC tag. It might be reading it quite frequently, but only writes to the tag when the operator actually enters a value....that is unless you are doing some sort of scripting that is out of the ordinary.
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.
  Reply With Quote
Old February 14th, 2018, 02:59 PM   #9
Aardwizz
Member
United Kingdom

Aardwizz is offline
 
Aardwizz's Avatar
 
Join Date: Dec 2017
Location: Swindon
Posts: 128
You may be overthinking it.

If I'm understanding you, rather than having WW read from 30-odd ML1100's over radio, you're concentrating all the data into a CompactLogix, and having that do the Reads & Writes.

If so, you might not see any improvement in performance, and some things could be worse, depending on how things are set up.

If I'm not confusing it with another SCADA package, or an older version (and that's certainly possible, so take everything I say with the requisite amount of salt), WW polls only data that it needs to poll (i.e., what's on an active screen, or data that's being historized) at a particular poll rate. It only writes data when it changes a value. These are old techniques used to reduced bandwith, back in the 9600 baud days, and they generally still exist today, just like the CMD window for DOS-like control of Windows.


So, if you're rotational polling of the ML1100's is slower than Wonderware's, any data that is being stored in the Historian isn't potentially changing as often. Screens may contain slightly staler data. Probably not enough to notice or bother anybody. But "probably".

As for data writes, you might do something like the following:

I'm assuming that the data you are reading from the ML1100s can be the same as the data that you are writing -- a combination of setpoints and process values; commands and statuses (stata? statii?).

The easy way to detect that WW has changed a value that it also reads ("Setpoint") is to have a duplicate copy of the file (array) that the setpoint is in. Using a FSC instruction, you can compare the array to the copy ("array_old), and if there's any change, CPS (not COP) the whole array to array_old, and trigger a MSG Write to send it to where it belongs.

When you do your periodic MSG Read, upon .DN, do a CPS of the array to array_old, so that you won't trigger a "mismatch" write.

There is a problem with this, of course. HMI communications are asynchronous to scan. Therefore, it could be that WW just happens to do its write to the same file that you are doing your MSG read from, and either get its data overwritten, or have the new value CPS'ed after the MSG DN bit, thus NOT triggering a write.

It would be better, then, if the "read" and "write" tags of WW were different, as I believe one can do in FTView (not sure -- rusty, and memory is what it used to be, at least, I think that it isn't; it's hard to remember), but I'm not sure that it can.

If it can, then your best strategy is to do MSG Reads to one array, and MSG Writes to a separate Array. Each ML100 would do the MOVs in the appropriate direction, into the Read Destination file ("N30"), or out of the Write Destination file ("N31").

HTH
  Reply With Quote
Old February 14th, 2018, 03:20 PM   #10
Bit_Bucket_07
Member
United States

Bit_Bucket_07 is offline
 
Bit_Bucket_07's Avatar
 
Join Date: Feb 2013
Location: Southeast US
Posts: 1,384
Quote:
Originally Posted by Aardwizz View Post
If I'm not confusing it with another SCADA package, or an older version (and that's certainly possible, so take everything I say with the requisite amount of salt), WW polls only data that it needs to poll (i.e., what's on an active screen, or data that's being historized) at a particular poll rate.
That is an option that may be selected when configuring an Access Name. The choices are: "Advise all items" or "Advise only active items".
__________________
  Reply With Quote
Reply
Jump to Live PLC Question and Answer Forum

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
Studio 5000 reading analogue input low and high engineering values matt.smith LIVE PLC Questions And Answers 9 March 1st, 2017 07:14 AM
Default values for add-on instructions don't work rollex LIVE PLC Questions And Answers 5 February 4th, 2015 02:34 AM
Writing numeric values in Vijeo Citect... donnedved1960 LIVE PLC Questions And Answers 6 February 20th, 2012 06:57 PM
Saving and Retrieving High Speed Counter Values dcooper33 LIVE PLC Questions And Answers 13 October 20th, 2011 08:15 PM
Wonderware Print trending values MGuenette LIVE PLC Questions And Answers 4 November 29th, 2007 10:09 AM


All times are GMT -5. The time now is 03:17 PM.


.