Welcome to the new Schneider Electric Community

It's your place to connect with experts and peers, get continuous support, and share knowledge.

  • Explore the new navigation for even easier access to your community.
  • Bookmark and use our new, easy-to-remember address (community.se.com).
  • Get ready for more content and an improved experience.

Contact SchneiderCommunity.Support@se.com if you have any questions.

Close
Invite a Co-worker
Send a co-worker an invite to the Exchange portal.Just enter their email address and we’ll connect them to register. After joining, they will belong to the same company.
Send Invite Cancel
84248members
353347posts

Write to a point from global script

EcoStruxure Geo SCADA Expert Forum

Find out how SCADA systems and networks, like EcoStruxure Geo SCADA Expert, help industrial organizations maintaining efficiency, processing data for smarter decision making with IoT, RTU and PLC devices.

Solved
DavidSkilbeck
Lt. Commander
Lt. Commander
0 Likes
7
1360

Write to a point from global script

Hi,

I was unable to write to a string point from a global script. Something I have not had to try before. Can I determine that this is possible please.

Thanks,

 

Tags (1)

Accepted Solutions
BevanWeiss
Spock
Spock
0 Likes
1
1312

Re: Write to a point from global script

Override is not the function that you are looking for...

 

Override substitutes the current value of the point for the Override value of the point in 'things'..

Release then removes that Override returning it to the last current value.

 

If you are talking about an Internal Point (and you don't appear to have mentioned either way), then you should just be able to write the value you want to the CurrentValue of the (internal) point.

 

e.g. MyObj.Interface.CurrentValue = myVal


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..

See Answer In Context

Tags (1)
7 Replies 7
DavidSkilbeck
Lt. Commander
Lt. Commander
0 Likes
6
1349

Re: Write to a point from global script

I Have been told, but I have not seen it work.

That, it can only be done via a server object property interface to provide access to the point's methods and properties.

I will be wanting to write to strings and boolean's.

The first attempt is a string. I noticed the value in the point does change.

The code below is by no means complete.

 

PointId = 7478
Set MyObj = Server.LookUpObject(PointId)
MyObj.Interface.Override 0 'Noted when changed this 0 to 1 and back again it changes value in point

 

 

Also, how do you turn the override off?

 

Thanks,

Tags (1)
AdamWoodland
Commander Commander
Commander
0 Likes
5
1333

Re: Write to a point from global script

There is no Server object in global script, on a single system setup it might be obvious what the Server would be. With multiple systems defined it isn't, which is a big problem for "globalness"

 

If you call the global script from the alarm banner it has context, so each row of the alarm banner has a Server object, i.e. using 

AlarmBanner.SelectedAlarms(0).Server , allowing you to select multiple alarms from multiple systems and access the correct Server for each object in the array.

 

See the help for "Core Reference > Coding > Scripting > Common Uses for Alarm Banner Scripts" for some examples of this.

 

But if you call it from the script handler OnMessageReceived then I don't think there is any Server object as there is no context.

 

In your code do you have "On Error Resume Next" defined? My guess is an error or a VBScript Nothing is being returned so when you try and call the Override it is undefined.

Tags (1)
AdamWoodland
Commander Commander
Commander
0 Likes
4
1326

Re: Write to a point from global script

Also, how do you turn the override off?

 

There is a Release method you should call

Tags (1)
DavidSkilbeck
Lt. Commander
Lt. Commander
0 Likes
3
1324

Re: Write to a point from global script

Hi Adam,

thanks for the reply's.

 

I am using the below code at the beginning of the function to allow an alarm to be selected and retrieve data from that alarm.

Which seems to work ok.

 

Set Server = CreateObject ("Serck.ScxV6Server")
Server.Connect "Xxxxxx", "Xxxxxx", "Xxxxxx"

Set Alarm = Server.FindObject(AlarmBanner.SelectedAlarms(0).Source)

 

I am trying to one shot values into 10 or so points.

After being written to, the points must then be free to be changed by the operator.

Which should be allowed for by the Release method you have mentioned.

 

I will read through the items you have suggested.

Is what I am trying to do and the way I am looking to do it possible and the best way.

 

Thanks,

Tags (1)
DavidSkilbeck
Lt. Commander
Lt. Commander
0 Likes
2
1323

Re: Write to a point from global script

Hi,

the below code works.

 

PointId = 7478 '7503 '7478
Set MyObj = Server.LookUpObject(PointId)
MyObj.Interface.Override AlarmSeverity
'MyObj.Interface.Release

 

However, if I enable the Release.

The Previous Updated Value returns, which is to be expected.

Is there a way of making this not so?

The override value stays, but is allowed to be changed.

 

Thanks,

Tags (1)
BevanWeiss
Spock
Spock
0 Likes
1
1313

Re: Write to a point from global script

Override is not the function that you are looking for...

 

Override substitutes the current value of the point for the Override value of the point in 'things'..

Release then removes that Override returning it to the last current value.

 

If you are talking about an Internal Point (and you don't appear to have mentioned either way), then you should just be able to write the value you want to the CurrentValue of the (internal) point.

 

e.g. MyObj.Interface.CurrentValue = myVal


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)
DavidSkilbeck
Lt. Commander
Lt. Commander
0 Likes
0
1280

Re: Write to a point from global script

Hi,

I had tried MyObj.Interface.CurrentValue = myVal again and previously and had not got it to work.

I had tried a number of combinations and had not got it to work.

However, the below does seem to work for me.
Thanks,

 

PointId = 7478 
	
Set MyObj = Server.LookUpObject(PointId)
	
MyObj.Interface.Override AlarmSeverity
	
MyObj.Interface.CurrentValue = AlarmSeverity
	
MyObj.Interface.Release	

 

 

Tags (1)