The Safety Company
Driver Manual
FS-8700-95 Notifier NFS-3030
Notifier Onyx Driver Manual
Description
The NFS-3030 Serial driver allows the FieldServer to record data from Notifier Onyx Series NFS-3030 Fire Panels over RS-232.
The FieldServer acts as a Passive Client receiving messages and recording the status of a Notifier-3030
Fire Alarm Panel. There is no active polling by this driver; the communications are one-way through the panel’s printer port.
This driver is not capable of emulating a Notifier NFS-3030 panel and the very limited Server functionality has only been implemented to facilitate FieldServer’s Quality Assurance program.
The purpose of this driver is to record the status of Fire Alarm System detectors and Modules in Data Arrays – one Data Array per loop. It is limited by the information that the Notifier NFS-3030 unit sends in the form of text messages through its RS-232 printer port. The accuracy and timeliness of the data are therefore limited to the frequency of update messages that the Notifier Fire Panel issues.
Section 7 lists the Notifier message types supported by this driver and the effect on the status of points in the Data Array. The driver is capable of supporting the panel’s port supervision message is configured to do so.
The panel must output messages in English.
Max Nodes Supported
FieldServer Mode | Nodes |
Comments |
Client | 1 | Each FieldServer port can connect to only 1 NFS-3030 panel |
Server | 0 | The NFS-3030 driver cannot be used as a Server |
Driver Scope of Supply
Supplied by MSA Safety
Part # |
Description |
Driver Manual |
Hardware Connections
Notifier Onyx NFS-640 Panel
The FieldServer is connected to the Notifier NFS-3030 Fire Panel as shown in the connection drawings below. Configure the Notifier NFS-3030 Fire Panel according to the manufacturer’s instructions.
Connecting the Notifier-3030 Panel to a FieldServer
Hardware Connection Tips / Hints
The printer port must be enabled on the unit and set to 80 columns with NO supervision unless port supervision is enabled in the driver configuration.
Configuring the FieldServer as a (Notifier NFS-3030) Client
For detailed information on FieldServer configuration, refer to the FieldServer Configuration Manual. The information that follows describes how to expand upon the factory defaults provided in the configuration files included with the FieldServer (See “.csv” sample files provided with the FieldServer).
This section documents and describes the parameters necessary for configuring the FieldServer to communicate with a Notifier NFS-3030 Server.
It is possible to connect the Notifier NFS-3030 to any RS-232 port. These ports need to be configured for Protocol=”nfs3030″ in the configuration files.
Panel Status – Data Array Mapping
NOTE: All troubles will be recorded as a counter because there may be several troubles for a single device. This counter will be incremented or decremented as additional troubles are reported or cleared.
Parameter |
Registers (float) |
|
{per loop} | ||
Fire Alarm | 0-199 200-399 |
detectors modules |
Trouble each point will increment/decrement the number recorded, system normal will reset the counter to zero of troubles | 500-799 700-899 |
detectors modules |
PreAlarm | 1000-1199 1200-1399 |
detectors modules |
Security Alarm | 1500-1799 1700-1899 |
detectors modules |
Supervisory | 2000-2199 2200-2399 |
detectors modules |
Disabled | 2500-2799 2700-2899 |
detectors modules |
On/Off | 3000-3199 3200-3399 |
detectors modules |
Active | 3500-3799 3700-3899 |
detectors modules |
{system points only} | ||
System Troubles | 0-1000 | |
Disabled Zones | 1000-1999 2000-2099 Zones 2100-2199 |
General Zones Releasing Trouble Zones |
Panel *note: some of these Data Arrays are not appropriate for panels but arranged in this fashion for symmetry in message parsing |
3000-3099 3100-3199 3200-3299 3300-3399 3400-3499 3500-3599 3600-3699 3700-3799 |
Fire Alarm Trouble * Security Alarm * Disabled On/Off * |
Calculating Array Offset for a Panel
Each Notifier 3030 Loop has a separate Data Array. There can be up to 10 loops per panel, and the status of the detectors and modules on any particular loop is recorded in the appropriate section of the Data Array according to the device address. e.g. For a detector L02D054 in PRE ALARM, the address would be 1054 in the Data Array for loop 2.
Data related to the fire panel but not associated with a loop (Panel Circuit, System Troubles, and Disabled Zones) are recorded in the system Data Array assigned to Loop 0. e.g. For a Panel Circuit P12.7 in FIRE ALARM the address = 3000 + 11*8 + 7 = 3095 would be set to 1.
Data Arrays/Descriptors
The configuration file tells the FieldServer about its interfaces, and the routing of data required. In order to enable the FieldServer for Notifier NFS-3030 communications, the driver independent FieldServer buffers need to be declared in the “Data Arrays” section, the destination device addresses need to be declared in the “Client-Side Nodes” section, and the data required from the Servers need to be mapped in the “Client-Side Map Descriptors” section. Details on how to do this can be found below.
NOTE: In the tables below, * indicates an optional parameter, with the bold legal value as default.
Section Title |
||
Data_Arrays | ||
Column Title | Function |
Legal Values |
Data_Array_Name | Provide a name for Data Array. | Up to 15 alphanumeric characters |
Data_Array_Format | Provide data format. Each Data Array can only take on one format. | Float, Bit, Byte, Uint16, Uint32, Sint16, Sint32 |
Data_Array_Length | A number of Data Objects. Must be larger than the data storage area required by the Map Descriptors for the data being placed in this array. | 1-10000 |
Example
Client-Side Connection Descriptors
Section Title |
||
Connections | ||
Column Title |
Function |
Legal Values |
Port | Specify which port the device is connected to the FieldServer. | P1-P21 |
Protocol | Specify the protocol used. | nfs3030, 3030 |
Baud* | Specify baud rate. | 9600 (Vendor limitation) |
Parity* | Specify parity. | None (Vendor limitation) |
Data_Bits* | Specify data bits. | 8 (Vendor limitation) |
Stop_Bits* | Specify stop bits. | 1 (Vendor limitation) |
Supervision_Mode*2 | The driver is able to process port supervision queries sent by the panel. Refer to Section 5.1 for more information. | 0,1,2,3,4,5 |
Example
Client-Side Node Descriptors
Note: This driver does not utilize the Node_ID or station address as there can only be one panel per RS-232 Port. However, the configuration files require that this be defined. See below or Client.csv as an example.
Section Title |
||
Nodes | ||
Column Title |
Function |
Legal Values |
Node_Name | Provide a name for the node. | Up to 32 alphanumeric characters |
Node_ID | station address of physical Server node. | 1-255 |
Protocol | Specify the protocol used. | nfs3030, or 3030 |
Connection | Specify which port the device is connected to the FieldServer. | P1-P21 |
Example
1 Not all ports shown are necessarily supported by the hardware. Consult the appropriate Instruction manual for details of the ports available on specific hardware.
2 If the parameter is not specified or is zero, then port supervision must be disabled at the panel.
Client-Side Map Descriptors
FieldServer Related Map Descriptor Parameters
Column Title | Function |
Legal Values |
Map_Descriptor_Name | Name of this Map Descriptor. | Up to 32 alphanumeric characters |
Data_Array_Name | Name of Data Array where data is to be stored in the FieldServer. | One of the Data Array names from “Data Array” section above |
Data_Array_Offset | Starting location in Data Array. | 0 |
Function | The function of Client Map Descriptor. | Passive_Client |
Driver Related Map Descriptor Parameters
Column Title | Function |
Legal Values |
Node_Name | Name of Node to fetch data from. | One of the node names specified in “Client Node Descriptor” above |
Length | Length of Map Descriptor. | 4000 (LOOP_X) 3800 (SYSTEM_INFO) |
Address | The starting address of the read block. | 1 |
Loop | Loop number. | 1 to 10 |
Map Descriptor Example – Standard Example
This shows the standard Map Descriptor set up for a panel with 10 loops plus a single “system_info” Map Descriptor assigned to loop 0.
In the above example:
- Data_Array_Offset – Select the Array for data storage according to the Loop ID. System data is stored under loop 0.
- Function – All Map Descriptors are passive waiting for a message from the NFS-3030 panel.
- Loop – Identify the loop id for which this Map Descriptor will store data
Useful Features
FieldServer Synchronization
To synchronize the FieldServer’s Data Arrays with the Notifier NFS-3030 fire panel, the fire panel must be in the SYSTEM NORMAL state, and then the FieldServer can be restarted. There is no method of auto synchronizing the two devices because there is currently no method for polling data from the NFS-3030 panel through the printer port.
When a system normal message is received by the driver it clears all the Data Arrays associated with the driver. It attempts to do this in one cycle of the FieldServer. Depending on the size of the Data Array’s (each is typically 4k elements for this driver) and the number of loops this can take up so much cycle time that it can cause the system to crash especially in configurations where there are a large number of large moves. This can be avoided by eliminating unnecessary moves and by using bit arrays on the Map Descriptor rather than float arrays.
Port Supervision³
The driver is able to process port supervision queries sent by the panel. It has several modes for achieving this.
Mode = 1 Driver responds to port supervision queries.
Mode = 2 Driver responds to port supervision queries unless it fails to process a message correctly (parsing error). In this case, the driver starts a 7-second timer during which time it will not respond to port supervision queries.
Mode = 3 Driver accepts the port supervision query but does not respond. This mode is useful for panels where supervision is enabled but no response should be sent.
Mode = 4 This is an internal mode. It means the mode is in transition.
Mode = 5 Similar to Mode 1 but can be made to transition between mode=3 and mode=5 based on the value in a Data Array. This mode is useful for Hot Standby.
3 The driver did not support port supervision prior to version 1.02e.
Port Supervision in Hot Standby
A strategy that can be employed is the following.
The Primary FieldServer is set to Mode=1 and always responds to Port supervision Requests. The Secondary FieldServer is normally set to Mode=3 and will not respond to Port Supervision requests but is capable of transition. If the primary fails, the secondary becomes active but does not respond which causes trouble at the panel. If the transition is tied to a Data Array value that changes from a value of 0 to a value of 1 when the secondary becomes active, then the secondary can be made to transition to mode=5 so that it starts responding. Thus, the trouble occurs for the duration of the transition timer (hardcoded – 5 seconds). Thereafter the secondary responds so the trouble is suppressed. This means that the panel logs the event. When the Primary FieldServer becomes active again, the value at offset zero in the stats array will revert to 0 and the mode will transition to Mode=3.
Port Supervision in Hot Standby
A strategy that can be employed is the following.
The Primary FieldServer is set to Mode=1 and always responds to Port supervision Requests. The Secondary FieldServer is normally set to Mode=3 and will not respond to Port Supervision requests but is capable of transition. If the primary fails, the secondary becomes active but does not respond which causes trouble at the panel. If the transition is tied to a Data Array value that changes from a value of 0 to a value of 1 when the secondary becomes active, then the secondary can be made to transition to mode=5 so that it starts responding. Thus, the trouble occurs for the duration of the transition timer (hardcoded – 5 seconds). Thereafter the secondary responds so the trouble is suppressed. This means that the panel logs the event. When the Primary FieldServer becomes active again, the value at offset zero in the stats array will revert to 0 and the mode will transition to Mode=3.
In the above example:
- Data_Array_Function – Monitor the Hot Standby Status Array.
In the above example:
- Source_Offset – Offset 3 relates to the Secondary FieldServer.
- Target_Offset – The 1st element in the Data Array has control over how the driver responds to the port supervision request.
- Task_Name – Move the Hot Standby status to the 3030 driver stats array.
Normally the Secondary FieldServer is not active and must not respond to the port supervision query. When it does become active it must start responding.
Define the Stats Array as described in Section 6.5.
Troubleshooting
Connection Tips & Hints
- Trouble connecting to the Notifier printer port may occur if the port has not been enabled. By default, this port is disabled. Please check the Notifier Manuals on how to enable this port and ensure that it is set to 80 columns with no supervision unless port supervision is enabled in the driver configuration.
- If the FieldServer reboots when connected to the Panel Serial port, then it is most likely that an Optical Isolator is required to balance ground potential differences. Such differences have been known to damage the FieldServer serial port, and therefore it is recommended that this action is taken as soon as the symptom is observed.
Driver Limitations and Exclusions
General zone disabling will be recorded, but zone information related to corresponding alarm, trouble, pre-alarm, security alarm, supervisory, and on/off will not be recorded.
- Read point status data will not be recorded as this information is not available at the printer port.
- The Printer port must be enabled on the unit and set to 80 columns with NO supervision unless port supervision is enabled in the driver configuration. Refer to Section 5.1 for more information.
- Data related to non-event-driven printer reports will not be recorded by the FieldServer.
- This driver was written specifically for the following Notifier 3030 firmware versions. Any changes or additions by Notifier will not be reflected in this driver unless specifically revised.
o Boot: 001.001.001 Dec 03 2002
o App: 001.005.001 Feb 28 2003 - Information about zone status that is incorporated with point status messages will not be recorded by this driver.
- This driver is not designed for multi-dropped panels – there can only be one panel connected to any given FieldServer port.
- This driver records data as presented to the printer port by the Notifier NFS-3030 and can only be as accurate as this data.
- The driver cannot send any messages (including Ack, Reset, and Silence) to the 3030 Panel.
- The driver does not support NFS2-3030, – a separate driver is needed.
Error Messages
Most error messages are associated with errors parsing an incoming message from the NFS-3030. The most likely cause is a mismatch in the expected message format. The driver will flag one of the following error messages and continue. In most cases, the message currently being processed by the driver will also be printed so that problems can be easily diagnosed.
Message |
Explanation |
NFS3030:#1 Err. Incoming data is being abandoned on port %d. MapDesc’s are required to define storage. | A corresponding Map Descriptor with the correct loop number was not found for storing data.4 |
NFS3030:#2 FYI. Attempted to decrement < 0 | A “cleared trouble” message appeared for an address when there were no more troubles to clear. This may occur if a history printer dump is made. The Notifier messages may not be printed in chronological order, so the clear will occur before the trouble. |
NFS3030:#4 Err. Two-line addressing parsing failure. | Please contact Tech Support. |
NFS3030:#5 FYI. The MapDesc called <%s> is too short. | Increase the NFS3030-stats Data Array size4 |
NFS3030:#7 Err. Illegal Map Descriptor length – defaulting to 1. | Ensure that all Length field entries have been made correctly.4 |
NFS3030:#8 Err. Loop value error. Defaulting to 1 | The Loop parameter has an invalid value. 4 |
NFS3030:#9 Err. Undefined Loop. | Ensure all entries for the “Loop” field have been made. 4 |
NFS3030:#10 Err. Illegal Node_ID [%d] – Set to 1 | Nodes or stations are not part of this protocol – set the node value to the dummy value recommended in the driver manual. 4 |
NFS3030:#11 Err. Parsing Invalid Single Line message: %s | Please contact Tech Support. |
NFS3030:#12 Err. Parsing Invalid 2 Line message: %s | Please contact Tech Support. |
NFS3030:#13 Err. Parse failure, sys trouble not found in lookup: |%s| | Please contact Tech Support. |
NFS3030:#14 Err. Test file <%s> not found. | For development and testing only, please contact Tech Support. |
NFS3030:#15 Err. Diagnostic line ignored. | For development and testing only, please contact Tech Support. |
NFS3030:#16 Err. Attempt to store data outside of Data Array range. | Correct Data Array declarations. 4 |
4 Check configuration file settings. If necessary, update the .csv file. Refer to the Configuration Manual for assistance.
Message |
Explanation |
NFS3030:#17 Err. No polling is allowed. Presumed write thru abandoned! | Polling is not supported by this driver. The write is not performed and the Map Descriptor is returned producing a Protocol Error. To avoid the problem, reconfigure the upstream driver so that it does not write data into the Data Arrays associated with this Driver’s Map Descriptors. |
NFS3030:#18 Err. Internal Diagnostic. Call Tech Support. | The driver performed a poll. This is not permitted except as part of the driver’s self-diagnosing QA tests. |
FieldServer Statistics
The following table identifies statistics generated by the Notifier NFS-3030 serial driver and their meanings.
Message |
Meaning |
Messages received | Total number messages of all types received and successfully interpreted from the Notifier NFS-3030 A message can be a single or double line reporting status. |
Bytes received | A total number of bytes received by all message types from the Notifier NFS-3030. This number is independent of whether the message is to be ignored, is producing an error, or will be successfully interpreted. |
Protocol Errors | A message could not be parsed or stored correctly. |
Msg Ignored (can be seen on error statistics screen for connection) | A total number of messages ignored by the driver. Driver ignores the following messages Complete message but length is less than 50 leading CR (carriage return)character leading LF (line feed)character |
Additional Statistics
Additional statistics are available if the NFS3030-Stats Map Descriptor is declared in the configuration file. The statistics are recorded in a Data Array and addressed according to the formula. address = {statistic Id#} + {port #}*{50 stats per port}. They may be viewed using the FieldServer FS-GUI, or by reading the FieldServer’s data with another device. To invoke this feature, add the following to the configuration file:
Statistic | Description |
ID # |
NFS_STAT_SLAVE_BYTES_RCVD | Total number of bytes received on port | 30 |
NFS_STAT_SLAVE_MSGS_RCVD | Total number of full-length messages received, whether rejected or successfully interpreted | 31 |
NFS_STAT_SLAVE_BYTES_REJECTED_BY_COMPLETE | Total bytes rejected if the message is not of full length (i.e. <50) | 32 |
NFS_STAT_SLAVE_OCCURRENCES_REJECTED_BY_COMPLETE | Total number of messages rejected if the length is less than 50 or message is only CR or LF | 33 |
NFS_STAT_SLAVE_BYTES_REJECTED_BY_PARSE_KEYWORD | Total number of bytes rejected if event keyword (see Section 7.1.1) is unknown | 34 |
NFS_STAT_SLAVE_OCCURRENCES_REJECTED_BY_PARSE_KEY WORD | Total number of messages rejected if event keyword (see Section 7.1.1) is unknown | 35 |
NFS_STAT_SLAVE_ADDRESS_PARSE_FAILURE | A total number of messages producing error because of wrong address for loop, detector, panel, zone, etc. | 40 |
NFS_STAT_SLAVE_PARSE_KEYWORD_FOUND_BUT_NOT_ HANDLED. | Total number of messages received with known event keyword but not described in Section 7.1.1 | 41 |
NFS_STAT_SLAVE_STORE_IGNORES_MESSAGE | Total number of messages which Map Descriptor is not defined to store data | 42 |
NFS_STAT_SLAVE_STORED_MESSAGE | Total number of messages for which Driver stored data | 43 |
NFS_STAT_CLIENT_SENDS_POLL | Used during testing only – Increments by 1 each time the Client sends a poll | 44 |
Message to Data Array MappingReference
This driver was designed to be connected to the Notifier Onyx NFS-3030 printer port and listen for incoming messages. The panel’s default setting for the printer port is off. To utilize this driver, the printer must be enabled on the unit and set to 80 columns with NO supervision unless port supervision is enabled in the driver configuration. Refer to Section 5.1 for more information on port supervision.
The purpose of this driver is to record the status of devices connected to the NFS-3030 system by interpreting the text messages sent to the printer port. Only messages that directly pertain to device status are currently supported. The following subset of event messages is recognized:
Notifier NFS-3030 Message Types Recognized
Event Keyword | Data Arrays Affected | Clearing Event |
Notes |
Fire Alarm | Modules/Detectors | Cleared Fire Alarm System Normal |
states: {0,1} |
Trouble | Modules/Detectors System Panel Circuit |
Cleared Trouble System Normal |
This is for both point and system trouble – system troubles are only 1 line message with no point address. states: {counter} |
Pre Alarm | Detectors | Cleared Pre Alarm System Normal |
states: {0,1} |
Security Alarm | Modules Panel Circuit | Cleared Security Alarm System Normal |
states: {0,1} |
Supervisory | Modules | Cleared Supervisory System Normal |
states: {0,1} |
Disabled | Zones Modules/Detectors Panel Circuit |
Cleared Disabled System Normal | states: {0,1} |
On/Off | Modules Panel |
Off/On | states: {0,1} |
System Normal | All | Will reset all Data Arrays for all loops and the system to zero | |
Active | Modules | Cleared Active |
System Trouble Messages
Detailed mapping of message interaction System Trouble messages provided by Notifier at the time this driver was written is tabulated below. Any changes or additions by Notifier will not be reflected in this driver unless specifically revised. Because of the patterns of the messages, the search string has been truncated to permit message recognition with the device address.
Case | NFS-3030 message |
Alternative search string |
1 | LOOP x- x COMM FAILURE | COMM FAILURE |
2 | STYLE 4 SHORT x LOOP x | STYLE 4 SHORT |
3 | ANNUN x NO ANSWER | NO ANSWER |
4 | ANNUN x TROUBLE | TROUBLE |
System Trouble | ID # | System Trouble | ID # | System Trouble |
ID # |
AC FAIL | 0 | INTERNAL RAM ERROR | 15 | PROGRAM CORRUPTED | 30 |
ADV WALK TEST | 1 | LOADING.NO SERVICE | 16 | PROG MODE ACTIVATED | 31 |
UDACT NO ANSWER | 2 | COMM FAILURE | 17 | SELF TEST FAILED | 32 |
UDACT TROUBLE | 3 | MAN EVAC INITIATED | 18 | SOFTWARE MISMATCH | 33 |
AUXILIARY TROUBLE | 4 | MAN EVAC RECEIVED | 19 | STYLE 4 SHORT | 34 |
BASIC WALK TEST | 5 | MANUAL MODE ENTERED | 20 | STYLE 6 POS. LOOP | 35 |
BATTERY | 6 | NCM COMM LOSS | 21 | STYLE 6 NEG. LOOP | 36 |
CHARGER FAIL | 7 | NETWORK FAIL PORT | 22 | STYLE 6 SHORT LOOP | 37 |
CORRUPT LOGIC EQUAL | 8 | NFPA 24HR REMINDER | 23 | TEST PROGRAM UPDATE | 38 |
DRILL INITIATED | 9 | NVRAMBATT TROUBLE | 24 | TM4 TROUBLE | 39 |
DRILL RECEIVED | 10 | NO DEV. INST ON L1 | 25 | TM4 NO ANSWER | 40 |
EPROM ERROR | 11 | NO POWER SUPPLY INST | 26 | TM4 DISABLED | 41 |
EXTERNAL RAM ERROR | 12 | PANEL DOOR OPEN | 27 | TROUBLE | 42 |
GROUND FAULT LOOP | 13 | PRINTER OFFLINE | 28 | NO ANSWER | 43 |
GROUND FAULT | 14 | PRINTER PAPER OUT | 29 | SYSTEM INITIALISATION | 44 |
APPLICABILITY & EFFECTIVITY
Effective for all systems manufactured after March 2021.
Driver Revision: 1.05
Document Revision: 3. A
The Safety Company
MSA Safety
1991 Tarob Court
Milpitas, CA 95035
Website: www.MSAsafety.com
U.S. Support Information:
+1 408 964-4443
+1 800 727-4377
Email: smc-support@msasafety.com
EMEA Support Information:
+31 33 808 0590
Email: smc-support.emea@msasafety.com
Documents / Resources
![]() |
MSA FS-8700-95 Notifier NFS-3030 [pdf] Installation Guide MSA, FS-8700-95, Notifier, NFS-3030 |