Issue
In my FAQ272373 reset procedure is fixed and based on the certain time. Purpose of this resolution is to describe more efficient way to reset the modem in case of interrupted comms. Obviously, communication drop can be caused by another reason.
Product Line
SCADAPack E RTUsEnvironment
E Configurator, SCADAPack Workbench 6, TelnetResolution
SCADAPack E range products provides valuable communication statistics which can be accessed through the System Analog Points:
Description | System Analog Point Number |
---|---|
Total DNP3 Master 1 Fragments Received | 53000 |
Master 1 Unsolicited Fragments Transmitted | 53001 |
Master 1 Unconfirmed (timed-out) Unsolicited Responses | 53002 |
Total DNP3 Master 2 Fragments Received | 53003 |
Master 2 Unsolicited Fragments Transmitted | 53004 |
Master 2 Unconfirmed (timed-out) Unsolicited Responses | 53005 |
Total DNP3 Master 3 Fragments Received | 53006 |
Master 3 Unsolicited Fragments Transmitted | 53007 |
Master 3 Unconfirmed (timed-out) Unsolicited Responses | 53008 |
In this resolution we will rely on value provided by the point #53000. In case of unsolicited only data exchange mode system point #53002 can be used.
First we need to define derived boolean point 1100 in the database which will be used as a trigger to perform the modem reset in RTU application:
SCADAPacks of E range has built-in alarm functionality so we will reference our binary point as an alarm for no-change:
If Total value of DNP3 Master 1 Fragments Received has no changes after 600 seconds binary point 1100 value will be set to true.
The advanced modem reset procedure is based on manipulation with modem Initialisation string. When binary point 1100 is set to true Initialisation string is changed to AT+CFUN=1. Th GPRS Disconnect routine is triggered with consequent port reopen routine with configurable timeout. In the end AT String is set back to default to allow the modem to reconnect.
This FAQ contain the function block that can be used to perform the required routine.
The block needs to be enabled by setting resetEnabled Input to TRUE. Output resetCounter can be used to count how many times reset was performed.
initString has to be connected to IO Device linked to the System String point associated with AT Init String:
Below you can find the table with System Point numbers and relevant Serial ports:
SCADAPack Serial Port | System String Point Number |
---|---|
Port 0 | 50200 |
Port 1 | 50201 |
Port 2 | 50202 |
Port 3 | 50203 |
Port 4 | 50204 |
More details how to write String points could be obtained in the SCADAPack E Reference Manuals > Target 5 I/O Device Technical Reference Manual > I/O Devices > RTU Database I/O Devices > Writing RTU String Points