EcoStruxure Geo SCADA Expert Forum
Schneider Electric support forum about installation, configuration, integration and troubleshooting of EcoStruxure Geo SCADA Expert (ClearSCADA, ViewX, WebX).
Link copied. Please paste this link to share this article on your social media post.
Posted: 2019-11-26 08:59 AM . Last Modified: 2023-05-03 12:22 AM
>>Message imported from previous forum - Category:Scripts and Tips<<
User: ROVSCADAENGINEER, originally posted: 2019-07-14 21:56:34 Id:469
Morning Fellow Engineers!
I am wanting to build the following:
I need to send SMS to several operators in the field from a list which is created by the engineer.
I am wondering if you have any code samples that might help me in this. Basically I want a box I can type a message into hit send and it sends to the operators from scada.
My current approach
Set button to reference script which passes a send sms method to the contact list specified in the menu. Would be preferable to make the script reference a list first before doing this.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2019-11-26 08:59 AM
>>Responses imported from previous forum
Reply From User: BevanWeiss, posted: 2019-07-15 12:29:13
I'm definitely not recommending this, but you could do this using some ST Logic and an SQL query.
It would be possible to do a query to get the operators which have an SMS Paging Service configured against them. And then to execute the SendMessage method (I forget the exact name, but the schema has this info) against each one.
The Logic could then accept a STRING for the message, and would send the same message to each user (with Paging Service).
The ST Logic DB Lock should be kept under control with NO CACHE
Reply From User: ROVSCADAENGINEER, posted: 2019-07-15 21:43:12
Thanks Bevan!
Thanks also to one of the helpful software engineers at Schneider here is some sample code.
Have not tweaked it yet with the list
__________________________________________________________________________________________
PROGRAM SendCurrentValueAsSMS
(* Declare internal point current value as a string (implied type conversion) *)
VAR
Value AT %M(.Message.CurrentValue): STRING;
END_VAR
(* Setup Method block, we will be calling the SendPagerMessage method on a user. See CDBUser in the schema for details.*)
METHOD
TXTMSG AT %M(Users.user.SendPagerMessage) : LREAL, STRING;
END_METHOD
(* Call Method on the 0th pager contact for the user. *)
TXTMSG (0, Value);
END_PROGRAM
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2019-11-26 08:59 AM
>>Responses imported from previous forum
Reply From User: BevanWeiss, posted: 2019-07-15 12:29:13
I'm definitely not recommending this, but you could do this using some ST Logic and an SQL query.
It would be possible to do a query to get the operators which have an SMS Paging Service configured against them. And then to execute the SendMessage method (I forget the exact name, but the schema has this info) against each one.
The Logic could then accept a STRING for the message, and would send the same message to each user (with Paging Service).
The ST Logic DB Lock should be kept under control with NO CACHE
Reply From User: ROVSCADAENGINEER, posted: 2019-07-15 21:43:12
Thanks Bevan!
Thanks also to one of the helpful software engineers at Schneider here is some sample code.
Have not tweaked it yet with the list
__________________________________________________________________________________________
PROGRAM SendCurrentValueAsSMS
(* Declare internal point current value as a string (implied type conversion) *)
VAR
Value AT %M(.Message.CurrentValue): STRING;
END_VAR
(* Setup Method block, we will be calling the SendPagerMessage method on a user. See CDBUser in the schema for details.*)
METHOD
TXTMSG AT %M(Users.user.SendPagerMessage) : LREAL, STRING;
END_METHOD
(* Call Method on the 0th pager contact for the user. *)
TXTMSG (0, Value);
END_PROGRAM
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.