July 25, 2014 | Bretislav Valek
The Reliance SCADA system allows sending and receiving text messages via a GSM modem. Sending text messages can be done either programmatically (i.e., via scripts) or automatically when a certain event occurs (e.g., an alarm/event's start, end, and acknowledgment). Messages are sent asynchronously. This means that requests for sending the messages are passed to SMS Driver. After that, the driver provides sending them "in the background". During asynchronous communication, it usually happens that finding out the result of an operation (in this case, the sending of a text message) is delayed. When sending multiple text messages, it can be complicated to evaluate the result. Up to Reliance 4.6.1, evaluating the status of sent messages had only been possible by calling the RModem.GSMGetSMSStatus function. To trace the status of a text message using this function, it had been necessary to know the unique identifier (ID) of the message, which is only available when the message is sent. In case of sending a single message, it is pretty easy. You just need to store the message ID in a internal tag and use a periodic script to trace the message's status by calling the RModem.GSMGetSMSStatus function. However, it is much more difficult when sending multiple messages (e.g., sending a message to multiple recipients). What is more, it had been impossible to trace the status of automatically sent messages due to the non-existence of a way of getting their ID. These drawbacks led to an enhancement in Reliance 4.6.2. Beginning with this version, you can handle the following events when sending text messages:
A script can be linked to both types of events and, in the script, an immediate response to a particular event can be performed in any way (e.g., by notifying the operator). Information about the text message is passed to the linked scripts (the message's text, the sender's phone number, and – if the message fails to send – error code). In this way, it is also possible to work with messages that have been sent automatically instead of via scripts.
Another new feature that has been added to version 4.6.2 is the possibility to pass GSM signal quality information to a tag defined within the visualization project. You just need to choose any internal tag in which SMS Driver will automatically store the current quality of the GSM signal (see the picture below).
The selected tag can have the following values:
|0||=||no signal available; the tag's value is 0 even if a modem failure occurs (e.g., the modem fails to initialize)|
|1||=||the weakest signal|
|100||=||the strongest signal|
It is then easy to display the immediate level of the GSM signal using, for example, the Progress Bar or Real-Time Trend component or to create an alarm/event (e.g., the low critical limit or a value in the range of 0-0), which allows automatically reporting a GSM signal failure in the visualization project.