43545members
218143posts

Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

Highlighted
Ensign

Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

The application has some existing buttons and I needed to make some changes and want to test them but don’t have a PLC.

 

One button has Pick animation expressions using parameters. I have used these before but had a PLC to test with. I think this is the only way to not have to click a few different things on a popup menu and just have the button set the value in runtime? But it also has a method pick action with an empty object. If I try to use a test internal tag it says there is no control method. If I try ?CurrentValue&Action it also says that method is not there. Looks like you can’t use internal memory tags to help test?

 

                PickDisabled      "Parameter:Pump_Status.Auto"= 1

                PickParam          "Parameter:Pump_Start.ObjectLink"+'?Control&Action=''Start'''

                PickType             5

 

Another button has no parameters, only the PickDisabled animation expressions and the method pick action with the tag path for the object. Aggregate, Alarm and Method are set to none and no methods. I guess this one works because the point type is DNP3 Pulse? If I try to use a test internal tag it changes the pick action configuration method to acknowledge alarms and doesn’t work.

 

Another button has the script pick action. I’m guessing the function is a custom script maybe but I can’t find it in the script or script library. It has pick action arguments and I wanted to see how it works. It looks to be setting one tag true and the other false. I’d like to use the same two buttons but with one tag. It actually works with the two PointPath arguments set to the same one tag but it would be nice to see the script.

 

                Mode                 Call Specific Function

                Function             PotinToggle

                Permission         Read

 

This is all very confusing to me and there is lots and lots of scrolling and searching and clicking and resizing windows so you can see expressions and going back to the template screen and then back to the instance and then closing the instance to update it to try and test animations with test internal tags or overrides. You have to add and enable the overrides on every tag and they have to be in service and have a unique address and so on. I’m tempted to use the bulk edit and enable all the overrides but I’m sure there is a reason they are all off by default and I’d not want to mess up their application. I’m often getting lost or finding myself on the template and not the instance or the other way around. Even if I’m willing to try and make test tags and relink, it very slow going as I’m slow and there is no simple search and replace.

Tags (1)
18 REPLIES 18
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

PickParam          "Parameter:Pump_Start.ObjectLink"+'?Control&Action=''Start'''

 

I'm definitely not sure about this... I don't believe any Control method takes a string-valued parameter called 'Action'

Which does also lead into this starting to become a little bit object type specific.

 

So... You're dealing with a DNP3 point.  This means that you don't directly adjust the CurrentValue, you call the Control method against the Control aggregate.  So Control.Control, and then I believe for a normal Direct Operate, it will want to take a Value="[VAL]" argument

 

e.g. PickParam          "Parameter:Pump_Start.ObjectLink"+'?Control.Control&Value=''1'''

 

For a Pulse Type of object, then I believe this is again a little different since it is technically an 'action' performed, and not just a value... and hence it is (likely wrong... consult the DB schema)

PickParam          "Parameter:Pump_Start.ObjectLink"+'?Control.Control&Action=''0'''

(typically Pulse objects have index 0 as being the thing you care about.. like issue 5s ON Pulse), since they don't really have a 'Value' which means much.  It is quite confusing... so apologies if this doesn't make entire sense.

 

 

In regards to your second question.. this one should be easier to get the first step on.

If it is calling a 'Specific Function', then that function must be defined somewhere.

Places to look:

1. In the Script section of the page that this pick action is on

2. In 'every' Script Library that is referenced from the Script section of the page that this pick action is on

 

The second part can get painful if there are lots of script libraries.  Hopefully they are named in meaningful ways and you can guess where such a function might be.  Otherwise you just need to start at the top, open it, search for your method and hope that it's in that script library.

 

Having overrides enabled is a bit 'dangerous'... since operators often don't understand what they mean.  And if one is inadvertently turned on, then it entirely ignores values from the field.  Hence 'Default OFF' is definitely the right choice here.

It's a bit annoying to test animations however.

What I typically end up doing is testing embedded mimics by changing the test values on the Parameters, and then 'trusting' that when I link it up to a real tag I don't goof it up too much (and of course this does get tested also... just not as soon as might be desirable).

 


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Ensign

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

The buttons using a PickParam like this:

 

PickParam          "Parameter:Pump_Start.ObjectLink"+'?Control&Action=''Start'''

 

Seem to be correct but I can't test them. Maybe they they set them up and never used them. There are a number of popups with them and it looks like they are trying to call the DNP3 Pulse action by the description and not the action number of witch there is only the one or "0". Each DNP3 Pulse tag has the same description that they use in the PickParam. The Pick Action is also set to Method but the Object path is blank.

 

If you use the same DNP3 Pulse tag with the Pick Action > Method > Object there is no Aggregate option so just the one Control in "?Control&Action" seem correct? If you use a regular DNP3 digital you get both Aggregate and Method control options so they seem like they would use the Control.Control in the PickParam. 

 

Not sure why you would use the PickParam vs the Pick Action Method but they also have some buttons with Pick Action Method using a DNP3 Pulse tag and they look better as they have two tags and two buttons and both buttons set the DNP3 unique Pulse tag to 0.

 

 

Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

PickParam is the same as PickAction, it just allows you to animate it.

You really need to use the combo PickType, and PickParam, but normally PickType will just be hardcoded to a value (or left floating as its last value... which I'm not a fan of personally).

 

Perhaps by description would work... I've honestly never tried, and it seems unlikely to me, because you can give them any descriptions you want as I recall (I haven't used a Pulse point in over a year).  If you can name both Action0 and Action1 as 'Start', and then someone tries to call ?Control&Action="Start" I'm not sure how Geo SCADA would know what to do.

 

Can you have a look in the DB schema for the Pulse point in question, and see if it has a Control Aggregate.  If it does, can you look for a method that might be like Control, and then paste a screenshot here?

I don't have GeoSCADA in front of me right now...


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Ensign

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

What is the best way to make a status tag based on the value of two DNP3 Generic Binary Inputs? Just make a logic function block and an internal digital point?

 

Found the script in the library section of the screens script. The screen script only had one function but then I saw the libraries option on the ribbon and right click menu, not used that before.

I thought/hoped you could use the BulkEdit Tool to remove the overrides but it only seems to let you disable them and then the ones that were already set are still set. "What I typically end up doing is testing embedded mimics by changing the test values on the Parameters" How would that work?

 

I'm not sure how to look in the DB schema. Like the web page "https://localhost/schema/" ?

 

Schema : DNP3

Category : Generic

Base Class : CDNP3Pulse

Configuration Fields

 

Name

Display Name

Type

OPC Property

Description

Notes

Enumeration

Action1Desc Action 1 Description String (24) 3505383 Description of the action. Enumeration: Close, Open, Start, Stop
Action1OffTime Action 1 Off Time Unsigned Long (Unsigned) 351490C Defines the pulse off time. Interval: Milliseconds
Action1OnTime Action 1 On Time Unsigned Long (Unsigned) 351490A Defines the pulse on time. Interval: Milliseconds
Action1Severity Action 1 Severity Word (Unsigned) 3505384 Severity of the alarm or event when the action is executed. Enumeration: None (0) , Low (1) , Medium (334) , High (667) , Critical (1000)
ConfirmDisableEnable Confirm Disable/Enable Byte (Unsigned) 350503C Controls whether confirmation is required when the object is enabled/disabled from a method. Enumeration: Always (64) , Always w/ Password (16) , Always w/ Notes (48) , Always w/ Notes + Password (80) , Per User (0) , Per User w/ Password (32) ,
Per User w/ Notes (96) , Per User w/ Notes + Password (112) , Never (128)
ControlConfirm Confirm Control Byte (Unsigned) 35053C7 Controls whether control requests must be confirmed by the user. Enumeration: Always (64) , Always w/ Password (16) , Always w/ Notes (48) , Always w/ Notes + Password (80) , Per User (0) , Per User w/ Password (32) ,
Per User w/ Notes (96) , Per User w/ Notes + Password (112) , Never (128)
InchingAllowed Inching Allowed Boolean 3505801 Controls whether the user can specify the pulse duration when the control is issued or not.
InService In Service Boolean 350501B Controls whether the point is active.
OperateType Operate Type Byte (Unsigned) 3514910 Defines the way that the control action is sent to the outstation. Enumeration: Direct Operate (0) , Direct Operate - No ACK (1) , Select Before Operate (2)
OutstationId Outstation Reference (CDNP3OS) 350532E Reference to the outstation on which the point is located. Index
PointNumber Point Number Unsigned Word (Unsigned) 3514000 Point number reference in outstation.
PointNumberUpdateTime Point Number Update Time Time 3514001 The time at which the point number field was last updated. Read Only
PromoteDuration Promote Duration Long (Unsigned) 35053A0 Duration, in seconds, that outstation(s) will be promoted for, when a control is executed.
PromoteEnabled Promote Enabled Boolean 350539A Controls whether any outstations are promoted when a control is executed.
PromoteOutstation1Id Promote Outstation 1 Reference (CDBPointSource) 350539B Reference to an outstation to promote scanning when a control is executed.
PromoteOutstation2Id Promote Outstation 2 Reference (CDBPointSource) 350539C Reference to an outstation to promote scanning when a control is executed.
PromoteOutstation3Id Promote Outstation 3 Reference (CDBPointSource) 350539D Reference to an outstation to promote scanning when a control is executed.
PromoteOutstation4Id Promote Outstation 4 Reference (CDBPointSource) 350539E Reference to an outstation to promote scanning when a control is executed.
PromoteOutstation5Id Promote Outstation 5 Reference (CDBPointSource) 350539F Reference to an outstation to promote scanning when a control is executed.
PulseCount Pulse Count Byte (Unsigned) 3514911 Defines the number of times the pulse On-Off cycle is executed at the outstation.
Severity Severity Word (Unsigned) 350501C Severity of alarms and events associated with the point, but not the state of the point. Enumeration: None (0) , Low (1) , Medium (334) , High (667) , Critical (1000)

 

Aggregates

 

Name

OPC Property

Fixed

Default

Classes

ControlChecks 3601700 No No CDBControlChecks

Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

In regards to locating the schema, I think my URL was wrong (I'm sure it used to have /db/ in the name)...

 
 

2020-07-29 09_21_45-Geo SCADA Expert Database Schema - Internet Explorer.png

 

If you have a pulse point, then you can search for 'Pulse' in 'List All Classes'

2020-07-29 09_23_25-Geo SCADA Expert Database Schema - Internet Explorer.png

 

You probably have a CDNP3PulseNull (if it's a normal on for time, off pulse), or maybe you have a PulseTripClose (normally only used in the Electrical space for relays).

 

That shows this:

2020-07-29 09_24_34-CDNP3PulseNull - Internet Explorer.png

which doesn't show a real Control aggregate... so we go up a level, by following the Base Class (if you're familiar with OOP, this is an inheritance structure.. aggregates are like an Interface)

 

So we get here:

2020-07-29 09_25_58-CDNP3Pulse - Internet Explorer.png

Darn... still not there unless we want to use Inching.

Once more down the rabbit hole to CAdvPulse

2020-07-29 09_27_18-CAdvPulse - Internet Explorer.png

And there we go... we find the Control method.

 

So you would want

"ObjectPath.ObjectLink" + '?Control&Action="{BYTE_VAL HERE}"

 

Which matches what I thought around it not (being documented as) accepting a string parameter.

It does surprise me that it's not on a separate Control aggregate... but there are some legacy implementation decisions in Geo SCADA sometimes.

 


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

In the Bulk Edit Tool you can change Property Overrides (but currently not Template Expressions).

2020-07-29 09_32_42-Geo SCADA Expert BulkEdit Tool.png

 

If you click on this, and then drill down to the level in the Tree that you care about (or use the Search), and then down the bottom in the Selected Classes you can tick some boxes, and over on the right hand side you can tick some more boxes (or untick if you want).  Then you Export that, and then you open it in Excel, and then you change the values from TRUE->FALSE or FALSE->TRUE as you want (you can see here the lack of support for Template Expressions).  And then you Import it...

The will turn Property Override ON, or OFF for a Property associated with an Object within a Template.

If that Property does not have Property Override ON, then the Property Value as configured on the Property of the Object within the Template will be forced down to the first level instances of that Template.

For raisons unknown to me it doesn't force OFF the Property Override at further layers through the Template hierarchy however, so it's generally only the lowest level Template which matters in regards to Property Overrides.


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

I do wish you'd split your questions into different threads... 😉

It would have been more helpful to other people coming afterwards and searching for these terms... they would just get one question asking "what's the best way to make a status tag based ont he value of two DNP3 Generic Binary Inputs".

 

And then my response:

Using a Digital Calculation Point.

2020-07-29 09_39_49-ViewX.png

 

If you're using something that 'Processes Input' (like most CDBPoint CurrentValue, CurrentQuality etc) then you can just tick 'Tag Processed', and it will be recalculated (almost) anytime the tag changes, tick 'Tag Quality Update' if you also care for things like if the outstation fails and takes the point offline. Then you can configure other options as you'd like...

It's also possible to use historical aggregates / methods and all the magic of the Expression Engine.

It's not 'quite' as powerful as the Logic Engine... but you're almost certainly guaranteed to make less mistakes here, and break less databases.

 

2020-07-29 09_40_54-ERC_!Config.!Test.New Digital Point - ViewX.png

 

PS: That Output Timestamp field is quite handy... but you do need to be careful it can produce some pretty confusing results. e.g. if Point3 was an internal point, and I hand controlled it's value.  But then I got dozens of historical records come in from a DNP3 field device... I'm going to get dozens of records added to the calculated point.  But they're all going to have the timestamp of when I did the hand control..  (note: I'd of used the LoggedValue property against the DNP3 points... but I wasn't going to take another screenshot).

 


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Ensign

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

I guess I could create new threads for each of these. Maybe too late now.

 

Sorry, they are using a CDNP3PulseNull.

                So "Parameter:Pump_Start.ObjectLink"+'?Control&Action=''Start''' will not work because it’s trying to use a string for the action and because the CDNP3PulseNull doesn’t have an Aggregate control or that just means you don’t need Control.Control&Action ?

 

Bulk Edit Tool you can change Property Overrides.

                I have used this with just the Properties icon set. Seems to have the same stuff but the Property Overrides option just shows the templates? I see the OverrideAllowed property for the CDNP3AnalogIn and so on.

I don’t follow: “The will turn Property Override ON, or OFF for a Property associated with an Object within a Template. If that Property does not have Property Override ON, then the Property Value as configured on the Property of the Object within the Template will be forced down to the first level instances of that Template.”.

So I could turn off the OverrideAllowed property but when I do this manually in the template the instance tag still shows the Override value that I gave it. Is it the act of the import that clears or releases the override if you have set the OverrideAllowed property to off for the objects in the import?

 

Make a status tag based on the value of two DNP3 Generic Binary Inputs.

I did it with a Logic Function Block and it seems to work but if you use the Calculation Digital point it can process on change vs. every second no matter what and you get to use expressions? In the Logic Function Block I have the 2 tags as inputs with some NOTs on each before they go into an AND block and the internal tag as the output. I’m guessing the Digital Calculation Point can be used as the internal tag that is true when the two tags are false?

 

I just used this expression ".Point1.CurrentValue"+".Point2.CurrentValue"=0 and it seems to work. Thanks.

      I wish I did not have to recreate the instance to try new tags and or tag properties.

Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

  1. Correct, there is no Control aggregate, so it shouldn't have Control.Control.  And it needs a byte value for the action (i.e. the index of the action, not the description).  As noted before, for a Pulse this is normally action "0"
  2. Property Overrides mean nothing on things that are NOT Templates.  And Property Overrides only apply to properties (it's in the name).  So whilst the views look 'similar' (i.e. in normal view you can change values of Properties, in Property Override view you can change whether a Property has Property Override enabled) they clearly perform very different functions.  If you change the value of 'OverrideAllowed' in the Template, and it does NOT change the Template Instance... then Property Override for that property ('OverrideAllowed') is current TRUE.  If you want the Template to dictate the value for a property, then Property Override for that Property MUST be FALSE.  DO NOT confuse the terms 'Override' and 'Property Override'.
  3. 'No matter what'.. this is definitely NOT what I wrote.  You should look in the help for 'Expression'  and find the section discussing all the capabilities of the Expression Engine.  It supports NOT.  Calculation points (you should look in the help around these also) are much less 'impact' to a system compared to the Logic, so they would be the preferred approach where possible.  They also make for much easier maintenance / diagnostics.  If the value of that point is 'strange' then you can just double click on it to see how the point is calculated.  Not so easy with logic, you need to do a Display References, and then find which logic reference does the writing etc etc.

You really do need to try pressing F1 and viewing the help.  It's generally quite good.


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Ensign

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

1 .Cool.

 

2. Still lost. “DO NOT confuse the terms 'Override' and 'Property Override'” Why would anyone do that? Don’t forget the template Overrides or maybe that is what you are talking about. It’s not clear, that is why they changed the name. 🙂

 

My memory is really bad as I think I’ve been through this before. So I have a template with a tag. On that tag I enable Override check box. Then after making an instance I can Override the instance tags value. Now I want to get rid of the Override ability for the tag. I change the Override check box in the template but the instance already has the tags Override value set. I can go to the instance tag and see that the Override enable check box is now unchecked but the Override value is still set and the right click menu has a release Override option.

 

In the BulkEdit I see all the same options for the template in both views. They both have OverrideAllowed and State#Override for each state. Even everything in the Excel file looks the same except the tab name. So yes, a little unclear.

 

The thought was to do a BulkEdit and set all the OverrideAllowed properties to False and have it also release Override value too. I thought you were saying this could be done.

 

3. "'No matter what'.. this is definitely NOT what I wrote." What? I was just saying what I had done and that the function block default polling is 1 second or something and I thought its doing it even when the tags don’t change. I did not say it did not support NOT and I was able to find a simply expression that worked. ???

 

"You really do need to try pressing F1 and viewing the help.  It's generally quite good."

I do, lots. It’s not the worst but mostly there is a lot of jumping around trying to find out what something does as its across many different pages and it needs more finished examples and like most online help has a few "this is the X setting, where you change the X setting" and I always click the wrong arrow and have to search all over again.  I use the manual a lot and have watched the few videos they have. Where is part three? You really need to try and not be as rude with your suggestions.

Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?


2. Still lost. “DO NOT confuse the terms 'Override' and 'Property Override'” Why would anyone do that? Don’t forget the template Overrides or maybe that is what you are talking about. It’s not clear, that is why they changed the name.

When you wrote this earlier

Is it the act of the import that clears or releases the override if you have set the OverrideAllowed property to off for the objects in the import?


That most definitely sounds like you were confusing the two terms.  I specifically mentioned importing Property Overrides, so you then talking about 'clears or releases the override' is very much confusing the two terms.

Property Overrides (Config Stream) are TRUE or FALSE.

The OverrideAllowed Property (Config Stream) is TRUE or FALSE.

The Overridden state (Data Stream) is Overridden or Released.

 

You'll have to explain 'Template Overrides', this term doesn't appear to relate to Geo SCADA Expert / ClearSCADA.

I've been dealing with ClearSCADA since 2010, they have always been called Property Override there.

 

 

If you have an OverrideAllowed set to FALSE for an object, but an Override still applies then I would file that as a bug with Tech Support.  It's not entirely defined behaviour I would say, not I would argue that if the OverrideAllowed property is set to FALSE, then that point should not be allowed to be Overridden (even if it currently is so, and hence the act of setting this property to FALSE [whether directly at the Instance level, or via Template propagation] should also force a Release of the Override state)

 

The Bulk Edit Tool is definitely a little confusing.  And not being able to really change things from inside the tool (always having to export / import) I also find a bit frustrating.  But it is what it is... there is always the Automation Interface / .NET API to do similar changes (and more).  FYI the Bulk Edit Tool ONLY works on the Config Stream (as far as I'm aware.. it doesn't let you set the CurrentValue property or other such non-Config data).

 

 

 

This forum is the proprietary Schneider version of Stack Overflow.  Spend some time there.

That I am insistent on correct terminology is partly me just being pedantic, but also that terminology is ultra important.  If you are asking for help, then you should have already looked in the help, and you should be using the terminology as the help mentions for things that the help is talking about.


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Ensign

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

Too many Overrides in too many places for me to keep strait.

 

Not in the manual but for me the Template Overrides are the only ones you can do in the template. Right click on the template and edit Property Overrides. The ones that let you change that property in the instance you create from that same template.

 

Then maybe I’d call State\Value Overrides what you can change in a tag. You can check the Override Enable checkbox and set the OverrideAllowed, also a "Property" and an "Override" but not the same as the Template Property Overrides. They only work on a few of the tags states or values then override the tags value.

 

Anyway, the OverrideAllowed being changed to false don’t seem to get rid of the tags value override. 😞 The plan is to use the BulkEdit tool to find all the tags with OverrideAllowed set and then check the tags that have it set and release them if needed.

 

The BulkEdit Tool is better than nothing and it would be nice if you could just right click anything on the ViewX DB and export CSV, search and replace text changing properties and then import back in. It would be great if you could copy an object in the ViewX DB tree then do a built in search and replace. A built in search and replace would be nice on the screens too, so you could search and replace any text or even tags in a pump symbol you just copied and so on. Oh well.

 

The CS Instance Creator Excel plug in sounded helpful but it seems like it’s just for making simple instances from a small template not much I can do with the giant site templates.

 

I’ve found a number of templates using the “?Control&Action=''Start'''” on buttons with a DNP3 Pulse tag and they are in production so it seems like it works but I don’t know why you would bother setting all those DNP3 Pulse descriptions when you could just use the 0 action number. Maybe it can get logged somewhere or maybe they just thought that is how it worked.

 

The manual shows a basic example.

"...Analog Input 1.ObjectLink"+'?CurrentValue&Value="50"'

 

It says to check the schema but how do you know if its CurrentValue&Value or Control&Action?

 

The DNP3 Binary Out has a control under aggregates and when you use the tag in the Pick Action wizard\GUI (???) it lets you select an aggregate control and a Method Control.

 

So for a DNP3 Binary Out: "Parameter:CMD.AutoObjectLink"+'?Control.Control&Action=''1'''

                But there are no action fields so: "Parameter:CMD.AutoObjectLink"+'?CurrentValue&Value=''1'''

 

And for a DNP3 Pulse: "Parameter:CMD.OpenObjectLink"+'?Control&Action=''0'''

                The DNP3 Pulse doesn’t have the CurrentValue field so that would not work?

 

I have fond help on various things on the Stack Overflow site. Did not know they had ClearSCADA stuff too?

 

I am asking for help and I need more than folks on forums can provide but you need to work on you people syntax. The idea that I and that you really thought that I just post every question I have without checking the online help or looking at videos or searching the forum or the internet is insulting and your smart enough to know that.

 

I'd most likely not posted about the buttons if I could just test them.

 

Just this morning I tracked down script in a script logic library and used the online help to change how the navigation buttons worked so they would find new templates in different folders.Nothing fancy but I did not make a post about it.

 

This:

SSQL = ( "SELECT TOP( 1 ) CTEMPLATEINSTANCE.FULLNAME " & _ 

" FROM CTEMPLATEINSTANCE " & _

" WHERE ( CTEMPLATEINSTANCE.FULLNAME LIKE 'Facility.S%' ) AND ( CTEMPLATEINSTANCE.FULLNAME < '" & sStationID & "')"  & _

" ORDER BY CTEMPLATEINSTANCE.FULLNAME DESC " )

 

To this:

SSQL = ( "SELECT TOP( 1 ) CTEMPLATEINSTANCE.FULLNAME " & _ 

" FROM CTEMPLATEINSTANCE " & _

" WHERE ( CTEMPLATEINSTANCE.FULLNAME LIKE '" & (Left(sStationID, InStr(sStationID, ".")+1)) & "%' ) AND ( CTEMPLATEINSTANCE.FULLNAME < '" & sStationID & "')"  & _

" ORDER BY CTEMPLATEINSTANCE.FULLNAME DESC " )

Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?


Not in the manual but for me the Template Overrides are the only ones you can do in the template. Right click on the template and edit Property Overrides. The ones that let you change that property in the instance you create from that same template.

Just remember 'but for me', ONLY applies for you, and doesn't apply for the vast majority of people in this forum (nor the Schneider developers etc), there is a documented standard.  Even you mention it there, when you right click, the exact text of the menu item is 'edit Property Overrides'.. so to insist that calling them 'Template Overrides' is 'correct' is bad form.

 

I would recommend you to raise the ticket with Tech Support.  It won't help you right now, but it might help you later when you try to do the same thing.  Or it might help someone else.

 

Your issue will be... the Point Overridden state is Read Only as a property.  The way to change it is via Method calls, like these two located against CDBPoint.

2020-07-30 12_11_08-CDBPoint - Internet Explorer.png

 

And that very painfully means that you'd need to use an alternative method to call these methods (the Release is likely the one you want).

Your options would be:

  • .NET API
  • Automation Interface
  • Logic
  • Scripting

 

I'd personally go for Logic.  Since it wouldn't be too difficult to get a query of all points which have the Overridden Property disabled, and to have a DBOBJECT datatype to return that contains the Method for Release, and then just loop on that and call Release.

 

There is a reasonable section in the help around SQL ST and Methods from DATABASE_OBJECT datatypes.

 

 

Schneider on the whole are quite accommodating of Feature Requests.  So if you can put together a use case, and document functionality that you want in a meaningful way then submitting it to Tech Support is pretty straight forward  (I'm sure they will hate me for saying this).

 

CurrentValue vs Control is largely whether it's a Simple Point, or an Advanced Point.  For Simple Points you can normally just set the CurrentValue and it considers that a control action.  For Advanced Points, they normally have a separate Control aggregate that the Control() method should be called on.

It is complicated, because different people write different drivers, and hence implement things a little differently...

But as you note from the help:

It says to check the schema but how do you know if its CurrentValue&Value or Control&Action?

You check the schema... the schema will tell you exactly if it is CurrentValue&Value or Control&Action (you may need to be able to interpret the schema perhaps... it's not the simplest)

 

StackOverflow is not the place I would recommend for ClearSCADA / GeoSCADA.  I would say your best options are:

  1. Here on this forum (although the search seems broken compared to the previous forum versions)
  2. Tech Support

 

In regards to getting support, and assumptions:

The onus is on you to present the information that conflicts with the help, or where you think the help is lacking.  If you had of used the correct Property Override terminology (as is used throughout all of the help documentation), then I might have had confidence that you had read it.  But that you used the wrong terminology repeatedly, for numerous items, really suggests that you hadn't properly read the help.

 

I think the following things are important when posting questions:

  1. What do I need it to do big picture?
  2. What is the exact problem I'm trying to solve to get to the big picture solution?
  3. What should it be doing (with as much doco on why it should be doing that as is possible... i.e. help screen shot, schema screen shot, other points doing it.. )?
  4. What is it doing?

 

Obviously the terminology for all of the things in the documentation should be exactly as the help calls them, that way, when people trying to help you look in the help to see around that, they aren't confused about what you're talking about.


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Lieutenant

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?


@BevanWeiss wrote:

CurrentValue vs Control is largely whether it's a Simple Point, or an Advanced Point.  For Simple Points you can normally just set the CurrentValue and it considers that a control action.  For Advanced Points, they normally have a separate Control aggregate that the Control() method should be called on.

It is complicated, because different people write different drivers, and hence implement things a little differently...

That's not quite correct, the behaviour doesn't depend on whether point is simple or advanced.

 

Setting the CurrentValue property of a point will issue a control if controls are enabled on the point (e.g. its an output point), the same as invoking the Control method.

If controls are disabled or not supported (e.g. its an input point) then it will apply a master-station override, the same as invoking the Override method.

If overrides are disabled then it will fail with an 'overrides disabled' error.

 

Some point types may implement their own custom behaviour when setting the CurrentValue property, for example DNP3 string points will initialise the string point's value.

 

The ability to control a point by setting the CurrentValue property was introduced for Function Block Diagrams in logic as they don't allow methods to be invoked, but do allow setting of properties.


Andrew Scott, Lead Engineer, AVEVA
Tags (1)
Highlighted
Ensign

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

"In regards to getting support, and assumptions:

The onus is on you to present the information that conflicts with the help, or where you think the help is lacking.  If you had of used the correct Property Override terminology (as is used throughout all of the help documentation), then I might have had confidence that you had read it.  But that you used the wrong terminology repeatedly, for numerous items, really suggests that you hadn't properly read the help."

 

That is not quite what happened in this thread, the thread before this or the one before that. You need to work on the way you talk to people. Property Override vs. Template Override, yes there is no way to know what Template Override would be, they have not read the manual ever and I’m going to tell them so in however slightly but a demeaning or condescending or passive aggressive way. After the post by Andrew Scott should I chime in and say something about how you should try looking at the manual for once? But maybe I’d be exaggerating a little bit and being a little bit of a jerk.

 

I can’t follow have of what you say my manual says ClearSCADA and what is Geo SCADA? I’ve only heard of EcoStruxure™ Geo SCADA Expert. ClearSCADA was relatively well known and too easy to remember so they changed the name to something more akin to the ClearSCADA development experience.:)

 

 

"Even you mention it there, when you right click, the exact text of the menu item is 'edit Property Overrides'."

 

And what did I click on? Where else do I get to the Templates Property Overrides? I'm sure there is another way. Are there Property Overrides on other types of objects? Maybe but I don't know. I’d still say Template (maybe through property in here) Overrides because there are properties all over the place and there different kinds of overrides.

 

The forum is only for things not covered in some form in the manual, got it. But maybe I’d be exaggerating a little bit and being a little bit of a jerk.

 

 ***************Back to buttons.

I’m old, slow and my memory is going. I’m not a software developer. I’m just a data entry guy. I just want to link tags to buttons and change a tags value or link them to a symbol and have it change color. I’ve not used all the SCADA packages but ClearSCADA is the most difficult one for me. I guess other packages do more work for the user on the I/O driver side? Having the schema is nice but I’d rather just have a write value command that works everywhere.

 

****Back to buttons, for real.

I guess the CurrentValue property is what would work with any tag type? You don’t need to know if its Control.Control&Action or Control&Action? But not tag types that don't have the CurrentValue property?

 

“Setting the CurrentValue property of a point will issue a control if controls are enabled on the point (e.g. its an output point), the same as invoking the Control method.

If controls are disabled or not supported (e.g. its an input point) then it will apply a master-station override, the same as invoking the Override method.

If overrides are disabled then it will fail with an 'overrides disabled' error.”

 

A DNP3 Binary Out can use '?Control.Control&Action=''1''' or '?CurrentValue&Value=''1'''?

            Because CurrentValue and Control and ControlChecks are in its schema?

 

A DNP3 Pulse can only use '?Control&Action=''0''' or manybe '?Control&Action=''Open'''? 🙂

            Because CurrentValue is not listed in the DNP3 Generic Pulse schema?

                    Only ControlChecks is though not Control.

 

They also have some that are using '?Control&Value="1"'? 😞

Tags (1)
Highlighted
Commander

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

@AndrewScott That CurrentValue behaviour (around the Override if Controls are not enabled) sounds a little unpleasant.

Was there a particular release that this behaviour came in?  I definitely know that back in CS2013R2 it was not possible to use CurrentValue assignment on DNP3 points to issue a control (since I had to customise embedded mimics to detect if they were not being used with a Simple Point type and had to call the Control method instead of assigning to the CurrentValue).

The override thing still... so setting CurrentValue once, might mean that you never get the true value from the field ever again? (unless the override is detected, and released).  No sir... I don't like it 😉

 

 


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (1)
Highlighted
Lieutenant

Re: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

Controlling DNP3 analog/binary output points by setting the CurrentValue property has been in the product for at least 15 years, so this should have been working in ClearSCADA 2013 R2.

 

Likewise overriding points which don't have controls (e.g. inputs) when setting the CurrentValue property and overriding is enabled has been in the product for at least 15 years, probably 20 years. Once overridden it can be released using the Release() method.


Andrew Scott, Lead Engineer, AVEVA
Tags (1)
Highlighted
Crewman

HRe: Help with buttons/animations. Is there a better way to test with DNP3 and no PLC?

Hi! 

 

Internal points use a different control method called "Hand Control" that isn't compatible with the way these buttons are configured. That might be why you are having trouble testing with internal points. 

 

You can configure a DNP3 slave in ClearSCADA and point the site's communications back to the ClearSCADA slave. This can be somewhat sophisticated if you have not done it before. It would give you a test environment that uses the same points as your PLC. If you have a different PLC (Modbus perhaps?) on the lab bench you can use those points too. All the other points use the Control aggregate's Control method for controlling and changing values. 

 

Otherwise your best bet is to get some hardware to do testing with, or find a friend with some PLCs available remotely. 

Tags (1)