FieldServer Configuration Manual
FieldServer Configuration Manual
FieldServer Configuration Manual
This manual provides instructions for the following FieldServer products: Description FieldServer FieldServer FieldServer
Instruction Manual Part Number: T17003 Rev. B4. Kernel Version: Document Revision: 5.22 4
Table of Contents
TABLE OF CONTENTS
1 FieldServer Concepts ...................................................................................................................................... 6 1.1 Introduction ................................................................................................................................................6 1.2 Application ..................................................................................................................................................6 1.3 Terminology ................................................................................................................................................6 1.3.1 Nodes .....................................................................................................................................................6 1.3.2 Clients and Servers .................................................................................................................................7 Overall Operation Philosophy ........................................................................................................................ 8 Getting Started Basic Configuration ............................................................................................................ 9 3.1 Configuration File Overview: ......................................................................................................................9 3.2 Configuration File Structure .......................................................................................................................9 3.3 Editing Configuration Files ........................................................................................................................13 3.4 Testing Configuration Files with MB8SIM.EXE..........................................................................................13 3.4.1 Additional worthwhile MB8SIM checks: ..............................................................................................15 Map Descriptor Functions ............................................................................................................................ 16 4.1 Active vs. Passive functions ......................................................................................................................16 4.2 Passive Map Descriptor Functions ............................................................................................................16 4.2.1 Passive .................................................................................................................................................16 4.2.2 Passive Client (Passive_Client) .............................................................................................................16 4.2.2.1 Working with Passive Client Passive Server Applications ............................................................17 4.3 Active Map Descriptor Functions .............................................................................................................18 4.3.1 Read Block Continuous (Rdbc) .............................................................................................................18 4.3.2 Active Read Continuous with Sequencing (Arcs). .................................................................................18 4.3.3 Write Block on Change (Wrbx) .............................................................................................................18 4.3.4 Write Block Continuous (Wrbc) ............................................................................................................18 4.3.5 Active Read on Trigger (ART) ...............................................................................................................19 4.3.6 Active Write on Trigger (AWT) .............................................................................................................19 Data Manipulation Features......................................................................................................................... 20 5.1 Moves .......................................................................................................................................................20 5.1.1 Simple Moves .......................................................................................................................................21 5.1.1.1 Simple Move Example .....................................................................................................................21 5.1.1.2 Special Application: Grouping Data ................................................................................................21 5.1.1.3 Special Application: Separating Responsible Map Descriptors .......................................................22 5.1.1.4 Special Application: Creating a LonWorks SNVT_Switch from 2 Modbus registers. .......................22 5.2 Function Moves Type Casting ................................................................................................................23 5.2.1 Functions Available For Type Casting: .................................................................................................23 5.2.2 Converting two Integers to a Float. .....................................................................................................24 5.2.3 Using Moves to pack and unpack bits to or from a Register ...............................................................24 5.2.4 Example 1 Simple Bit Extraction........................................................................................................25 5.2.5 Example 2 - Simple Bit Packing ............................................................................................................25 5.2.6 Example 3 - Extracting bit groups ........................................................................................................26 5.2.7 Bit Extraction Application Example ...................................................................................................26 5.2.7.1 Bit Extraction Example Configuration: ............................................................................................27 5.2.8 Task Moves ..........................................................................................................................................28 5.2.8.1 Special Application: Node Status ....................................................................................................28 5.2.9 Match-pattern .....................................................................................................................................29 FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
2 3
Table of Contents
5.2.9.1 Table of Patterns Configuration example ....................................................................................30 5.2.9.2 Moves Definition .............................................................................................................................30 5.2.9.3 Table String Composition ................................................................................................................30 5.2.10 Conditional Moves ...............................................................................................................................31 5.2.10.1 Conditional Moves: Example 1 ...................................................................................................32 5.2.10.2 Conditional MovesExample 2 .....................................................................................................32 5.3 Mathematical functions ...........................................................................................................................33 5.3.1 Math Function as a Moves Function ....................................................................................................33 5.3.2 Standalone Math .................................................................................................................................34 5.3.3 Math Usage Example: ..........................................................................................................................34 5.3.4 Optional Parameters ............................................................................................................................35 5.3.4.1 Truncate Result Example.................................................................................................................35 5.4 Logic ..........................................................................................................................................................36 5.4.1 Logic as a Moves Function ...................................................................................................................36 5.4.2 Standalone Logic ..................................................................................................................................36 5.4.2.1 Logic Usage Example: ......................................................................................................................36 5.5 Scaling .......................................................................................................................................................37 5.5.1 Map Descriptor Scaling ........................................................................................................................37 5.5.1.1 Scaling function example - Converting Celsius to Fahrenheit: ........................................................37 5.5.2 Scaling using Moves .............................................................................................................................38 5.5.2.1 Moves Scaling function example Multiplying values by 10:.........................................................38 5.6 Preloading Data Arrays with Initial Values ...............................................................................................39 5.6.1 Introduction .........................................................................................................................................39 5.6.2 Parameters used to define Preloads ....................................................................................................39 5.6.3 Limitations and Operational Considerations .......................................................................................40 5.6.4 Example 1 Load a Value ....................................................................................................................40 5.6.5 Example 2 Load a Value Effect of Target Data Array Format ........................................................40 5.6.6 Example 3 Load a Value Negative Numbers ..................................................................................41 5.6.7 Example 4 Load a Value Floating Point Numbers ..........................................................................41 5.6.8 Example 5 Load a Value Strings (1) ................................................................................................41 5.6.9 Example 6 Load a Value Strings (2) ................................................................................................42 5.6.10 Example 7 Load a value - Casting......................................................................................................42 5.6.11 Example 8 Load an Object name .......................................................................................................42 5.7 Loading Data_Array Values from the FieldServers Non-Volatile Memory ..............................................43 6 Node Management ...................................................................................................................................... 44 6.1 Data Array Functions ................................................................................................................................44 6.1.1 Node Status Function ...........................................................................................................................44 6.1.2 Alias_Node_ID......................................................................................................................................45 6.1.3 Alias_Node_ID - Example: ....................................................................................................................45 6.1.4 Node_Online_Bits ................................................................................................................................46 6.2 Connection Parameters ............................................................................................................................47 6.2.1 Node_Retire_Delay ..............................................................................................................................47 Dynamic Parameters .................................................................................................................................... 48 7.1.1 Dynamic allocation of Node_ID or Station number .............................................................................48 7.1.1.1 Diagram 1: Static Server Side Node_ID ...........................................................................................48 7.1.1.2 Remote Client finds a Node with Node_ID dependent on the data read from the remote Server device. 49 FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Table of Contents
7.1.2 Map Descriptor Parameters specific to Dynamic Parameters .............................................................50 7.1.3 Examples ..............................................................................................................................................50 7.1.3.1 Example 1- Dynamic Allocation of Node ID ....................................................................................50 7.1.3.2 Example 2 Dynamic Allocation of System Node ID ......................................................................51 7.1.3.3 Example 3- Dynamic allocation of the BACnet MAC address .........................................................51 7.1.4 Error Messages ....................................................................................................................................52 8 Port Expander Mode - PEX Mode ................................................................................................................. 53 8.1 How Port Expansion Works: .....................................................................................................................53 8.2 Advantages of Port Expander Mode .........................................................................................................53 8.3 Limitations of Port Expander Mode ..........................................................................................................53 8.4 Port Expander Write Options ...................................................................................................................53 8.5 Handling of Successive Writes to the Same Point ....................................................................................54 8.6 Port Expansion Configuration: ..................................................................................................................54 Timing Parameters ....................................................................................................................................... 55 9.1 Line Drive Parameters ..............................................................................................................................57 9.2 Suppressing Squelch on Half Duplex Communications ............................................................................57 9.2.1 Setting Parameter Values ....................................................................................................................58 9.2.2 Statistics ...............................................................................................................................................58 9.3 Enable on RS-232 Port ..............................................................................................................................59
10 Hot Standby ............................................................................................................................................ 60 10.1 Terminology ..............................................................................................................................................60 10.2 Hot Standby Mode 1 (True Hot Standby) .................................................................................................60 10.2.1 Limitations of Hot Standby Mode 1 .....................................................................................................62 10.2.2 Configuring the FieldServer for Hot Standby Mode 1 ..........................................................................62 10.3 Hot Standby Mode 2 (Dual Redundant Mode) .........................................................................................63 10.3.1 Single Port Server: ................................................................................................................................64 10.3.2 Dual Port Server: ..................................................................................................................................64 10.3.3 Tiers SCADA and PEX .........................................................................................................................65 10.3.4 RUINET functions for Hot Standby Mode 2 ..........................................................................................65 10.3.5 Keepalive Map Descriptors ..................................................................................................................66 10.3.6 Server Name.........................................................................................................................................67 10.3.7 Application example using Hot Standby Mode 2 .................................................................................67 10.3.8 Configuring the FieldServer for Hot Standby Mode 2 ..........................................................................68 10.3.8.1 Hot Standby Status Function ......................................................................................................68 10.3.8.2 Cable Status Function .................................................................................................................69 Appendix A. Useful Features ................................................................................................................................ 70 Appendix A.1. Using comments ...............................................................................................................................70 Appendix A.2. Using conditional process statements .............................................................................................70 Appendix A.2.1. Disabling the Client side of a configuration: ..........................................................................70 Appendix A.2.2. Disabling a Node....................................................................................................................71 Appendix B. Reference ........................................................................................................................................ 72 Appendix B.1. Working with the Driver Manuals ....................................................................................................72 Appendix B.1.1. Introduction ...........................................................................................................................72 Appendix B.1.2. Driver Manuals as Part of the Documentation Set ................................................................72 Appendix B.2. Default settings for parameters .......................................................................................................72 Appendix B.3. Available Data Types for Data Arrays ...............................................................................................73 FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Table of Contents
Appendix B.4. Permissible Values for Configuration File Variables .........................................................................73 Appendix B.4.1. Common Information ............................................................................................................74 Appendix B.4.2. Data Arrays ............................................................................................................................74 Appendix B.4.3. Data Array Function...............................................................................................................75 Appendix B.4.4. Connections/ Adapters ..........................................................................................................76 Appendix B.4.5. Nodes .....................................................................................................................................77 Appendix B.4.6. Map Descriptors ....................................................................................................................79 Appendix B.5. Valid Characters for Common Fields in Configuration Files .............................................................80 Appendix B.6. Kernel Error Messages and Descriptions ..........................................................................................81 Appendix B.7. Networking Glossary of Terms .........................................................................................................87
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 6 of 89
1 1.1
The FieldServer functions as a gateway enabling different devices utilizing different protocols to interface with each other. The FieldServer solves communication and protocol conversion problems and improves response times in distributed data acquisition and control systems. The extensive driver library available from FieldServer Technologies provides a wide range of interoperability solutions. For a current list of available drivers visit our website at www.fieldserver.com. The FieldServer also acts as an Ethernet gateway, enabling new and legacy PLCs, RTUs and SCADA devices to link to Ethernet for plant-wide communications. Depending on the model, the FieldServer is equipped with combinations of Serial, Ethernet and LONWORKS ports as well as various Fieldbus ports. The internal poll-block caching capability insures that data from Server devices is immediately available to the Client devices when needed. Data can be cached from slower devices or remote units for immediate access by the Client device. See Section 8 for details. The Hot Standby option for the FieldServer is available when dual redundancy is required. See section 10 for details.
1
1.2
Application
Todays plants are integrated, intelligent facilities requiring multiple mechanical and electrical systems to be controlled from a central processor. Many of these devices are not part of the central automation system, but that system still needs data input from these devices. Through its powerful protocol conversion capability the FieldServer allows system designers and managers to connect unique instrumentation and sensor devices onto common protocol systems and into the plant Ethernet 2 backbone. Due to its internal poll-block caching, multiple protocol capability and high port count , the FieldServer improves data and machine update time compared to conventional HMI packages using multiple drivers and port expanders. The FieldServer is designed to enable devices within a facility to communicate with each other or to a central control station via Serial, Arcnet, Ethernet or other communication busses. Two-way communication is easily available between the various process and control systems.
1.3
Terminology
1.3.1 Nodes 3
The devices communicating with the FieldServer may be referred to as Stations, Nodes, RTUs, DCSs, Workstations, SCADA Systems, MMIs, Field Devices, etc. To prevent confusion these devices are always referred to as Nodes in this manual. Similarly, Device Address, Station Address, Station ID is always referred to as Node ID in this manual.
1 2
LONWORKS is a trademark of Echelon Corporation registered in the United States and other countries. Except for FS-X20 3 Nodes may have the same Node_ID value, so long as they are connected to different ports.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 7 of 89
Server Side
FieldServer
Client Side
Server Node
SLAVE
Figure I - Client/Server
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 8 of 89
The FieldServer functions as a bridge between two or more different Nodes (see Figure II). The information is gathered by the Client side of the FieldServer from the Server Nodes via a Serial Port, Ethernet port or plug-in card. Nodes may use different protocols and even different communication busses. The Client Node Descriptors contain information about each Node including connection ports and protocol. Each Node is given a Node_Name and a Node_ID. The data from a Server Node is stored on the FieldServer in a Data Array. The exact location as well as the format of the information is determined by the Map Descriptors. The FieldServer can contain any number of Data Arrays, but each Data Array can only store data in one format. The Client Map Descriptors describe where the information is to be stored on the FieldServer, and the Server Map Descriptors describe how this information is able to be accessed by a Client Node. On the Server side of the FieldServer, virtual Nodes are created to convert the information stored in the Data Arrays to the format required by the Client Node. These Nodes can be accessed by any of the available ports on the FieldServer at any time. The FieldServer thus acts as a Client and a Server simultaneously.
Client Node
Server Side
Client Side
Modbus
Example: Consider a Modbus PLC with a set of 10 high alarms in address 00001 to 00010. A Map Descriptor is allocated to fetch Data Objects from Modbus address 00001 length 10 and save this data to a Data Array named PLC1, offset 20. The high alarm for sensor number 5 on PLC1 is thus stored in Data Array PLC1; offset 24 (the fifth location starting at offset 20). A DCS using Allen Bradley DH+ protocol can be configured to access the FieldServer and read the Data Array. The FieldServer will appear to the DCS as another DH+ PLC. If the Virtual Node PLC1 is configured to contain the data on sensor 5/PLC1 as a DH+ address B3:57, then the data needed for address B3:57 will be retrieved from Data Array PLC1, offset 24.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 9 of 89
3 3.1
The default driver configuration file (CONFIG.CSV) for any driver combination ordered is loaded into the FieldServer and can be retrieved using the Remote User Interface Utility (see the FieldServer Utilities Manual for more details). Use this file as a template when editing configuration files to ensure that the edited file takes the correct form. A detailed explanation of the configuration file follows:
3.2
//==========================================================// // Delivery.csv Note: Comments should be at the start of // SMC Customer : XYZ Corp. lines. If comments made after a line of // Ultimate Destination : Main Office parameters must not follow a comma // SMC Sales Order : 00103400 directly. // Driver Configuration : Modbus RTU // Configured By : GFM // Date : 23 Mar 00 Relevant Project information. // // Copyright (c) 2000 FieldServer Technologies // 1991 Tarob Court, Milpitas, CA 95035 This section allows for the determination of parameters // (408) 262 6611 Fax: (408) 262 9042 not directly related to any of the connections. // [email protected] // //=========================================================== // // Common Information This title appears on the top line of the RUI screen. It // may be used to indicate the configuration version Bridge loaded, and the relevant customer/project. Title DCC030 CC00103400 V1.00a //=========================================================== // Data_Arrays Data_Array_Name , Data_Format , Data_Array_Length DA_AI_01 , UInt16 , 200 DA_AO_01 , UInt16 , 200 DA_DI_01 , Bit , 200 DA_DO_01 , Bit , 200
Data Arrays are protocol neutral data buffers for storage of data to be passed between protocols. It is necessary to declare the data format of each of the Data Arrays to facilitate correct storage of the relevant data. More information is available in Appendix B.3
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 10 of 89
//========================================================== // This section contains the parameters that describe the nature of the // Client Side Connections physical connection to the Server Nodes. // Connections Port , Baud , Parity , Data_Bits , Stop_Bits , Protocol , Poll_Delay P8 , 9600 , None , 8 ,1 , Modbus_RTU , 0.100s The port to be connected to defined in terms of connection speed and properties. The protocol for the network connected to this port. Timing parameters on the connection allow for fine tuning of communications.
//========================================================== // This section defines the logical connection parameters for the Server // Client Side Nodes Nodes communicating with the FieldServer. // Nodes Node_Name , Node_ID , Protocol , Port PLC 1 ,1 , Modbus_RTU , P8 The Server Node is attached to this connection. A name allocated to the node for reference by the Map Descriptors.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 11 of 89
//============================================================== The Map Descriptor parameters describe the address details required to move data // between the FieldServer and an external device and the nature of the data transfer. // Client Side Map Descriptors // Map_Descriptors , , , , , , , Map_Descriptor_Name Data_Array_Name Data_Array_Offset Function Node_Name Address Length Scan_Interval CMD_AI_01 , DA_AI_01 ,0 , Rdbc , PLC 1 , 30001 , 20 , 1.000s CMD_AO_01 , DA_AO_01 ,0 , Rdbc , PLC 1 , 40001 , 20 , 1.000s Map_Descriptors Map_Descriptor_Name CMD_DI_01 CMD_DO_01 / , Data_Array_Name , DA_DI_01 , DA_DO_01 , Data_Array_Offset ,0 ,0 , Function , Rdbc , Rdbc , Node_Name , PLC 1 , PLC 1 Node being accessed. Determines how data is to be fetched/written. The FieldServer is either reading, being read, or writing data. This can be continuous, or on change. , Address , 10001 , 00001 , Length , 20 , 20 , Scan_Interval , 1.000s , 1.000s
Name assigned to the Map Descriptor. In some protocols the name becomes the variable name.
Data Array to be used for storage of data being passed between protocols.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 12 of 89
/========================================================== // Settings for how the FieldServer communicates with Client Nodes. // Server Side Connections // Connections The protocol for the network Adapter , Protocol connected to this port. N1 , Modbus/TCP Adapter definition applies to defining network and FieldServer (e.g. Profibus) connections. //========================================================== // // Server Side Nodes // Nodes Node_Name , Node_ID , Protocol MBP_Srv_11 , 11 , Modbus/TCP A Node name for reference by the Map Descriptors. Since the FieldServer is a Server here, this is the ID of the FieldServer (virtual) Node. The FieldServer can represent multiple Virtual Node_IDs in most protocols.
//============================================================== // // Server Side Map Descriptors // Map_Descriptors Map_Descriptor_Name , Data_Array_Name , Data_Array_Offset , Function SMD_DI_01 , DA_DI_01 ,0 , Passive SMD_DO_01 , DA_DO_01 ,0 , Passive
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 13 of 89
3.3
The configuration file is in comma-delimited format where entries within a line are separated by commas and the end of a line is indicated by an entry without a comma. This file can be edited using spreadsheet programs or any text editor. It is recommended that the CONFIG.CSV file be backed up before editing. Once edited, the file can be sent back to the FieldServer using the "D" command in the Remote User Interface. Refer to Appendix B.4 for the parameters that are usually filled out in the configuration file. Only the specified values may be used - other values may affect FieldServer performance or functioning. Not all parameters are compulsory for every driver (See the related driver manual for details). The bold legal value is the value that will be used if the parameter is not specified. Not all variables need be defined for every configuration. Depending on the protocol and configuration, some variables might not be necessary. More detailed information is located in the relevant Driver Manual, including settings specific to the drivers being used for a particular application. Most FieldServer parameters are specified in a configuration file and are fixed. A growing number, however, may be changed dynamically using values found in Data Arrays. We call these Dynamic Parameters. Refer to Section 7 for more information on Dynamic Parameters.
3.4
MB8SIM.EXE is a program that simulates the FieldServer on the PC and can be used for testing edited configuration files before transferring them back to the FieldServer. This file can be obtained by calling Tech Support. It is not necessary to use mb8sim. The configuration can be loaded into the FieldServer and tested in much the same way. Open an MS-DOS prompt and navigate to the directory containing the configuration file. Type: "mb8sim.exe -c<configuration file>", where <configuration file> is the name of the file to be tested. For example, to test the CONFIG.CSV file, type "mb8sim cconfig.csv". To test specific sections of a configuration file it is possible to ignore certain sections: To ignore a block use the "ignore" keyword at the start and the "process" keyword at the end of the block. To ignore individual lines use // The "end" keyword will stop processing the file, and anything after this keyword will be ignored. The following is an example of the interface when using MB8SIM.EXE. It looks very similar to the interface when using RUINET.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 14 of 89
Check all screens to see if the file is working correctly, paying particular attention to the Error screen. From the main menu, press "E" to enter the error display screen, and examine the errors listed (refer to Figure IV). Take note of System Errors or Configuration Errors. These indicate configuration problems in the configuration file. Note: a number of "System Overrun" errors may occur in this screen. They are caused as a result of the simulation, and will not cause any problems on the FieldServer.
None of these messages are errors. Config and system errors will have a banner saying System Error or Configuration Error.
When the file is free from errors (with the exception of "System Overrun" Errors), download it using the "D" command from the main menu of the Remote User Interface.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 15 of 89
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 16 of 89
Map Descriptor functions determine how data is mapped between Data Arrays and the corresponding driver data points. The choice of function used is critical in ensuring that the right relationship is established with the device being communicated with. The most important decision to make when choosing a function is whether the function needs to be active or passive. Once this is determined, the trigger for initiating communications determines which active or passive function is used.
4.1
Active functions control the communications activity for the associated points in the network. Specifying an active function for a point will enable the FieldServer to decide when a point is updated, and monitor the health of the communications path for that point (if the associated protocol allows for this). Specifying a passive function will mean that the FieldServer expects the communications for that point to be controlled and monitored by another device on the associated network. Note: By design, it is necessary that all active Map Descriptors communicate to a point that has a passive mapping on the remote device, and that passive Map Descriptors are controlled by an active mapping on the remote device. There is a loose relationship between Active/Passive and Client/Server. Clients usually use active mappings and Servers usually use passive mappings, however Active Servers and Passive Clients do exist. Points that send an update to a network on change (e.g.: Alarm panels) are a good example of Active Servers. Another set of terminology used in this area is solicited vs. unsolicited messages. A Client receives a solicited message from a Server when it asks for it (i.e.: the point is polled). A Client receives an unsolicited message from a Server when the Server sends the point without the Client asking for it. Clients that send solicited messages are Active Clients communicating with Passive Servers. Clients that receive unsolicited messages are Passive Clients communicating with Active Servers.
4.2
4.2.1 Passive
The Passive function will not initiate any communications but waits to be solicited by a remote device and responds with data accordingly. The Passive function will also accept writes and update the associated Data Array.
4 Note that not all functions are supported by all drivers. Refer to the specific Driver Manual for information on functions supported by individual drivers.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual 4.2.2.1 Working with Passive Client Passive Server Applications
Page 17 of 89
Data Server
Client Typical Properties Map Descriptor function used for both protocols A and B is passive FieldServer is non-intrusive into both networks, and responds to queries and commands only.
Network Protocol A
Network Protocol B
FieldServer
Some applications require the data Server to actively write data to and from the FieldServer. To do this it is necessary to change the Client side of the configuration to be passive. Individual drivers have specific requirements for managing passive communications, but the following steps are typically required to change the Active Client side of a configuration file to make it a Passive Client. Remove Adapter/Port to Client side Node Change Function from Rdbc to Passive Remove Scan_Interval Change Node ID to remote devices target Device ID If the Server side remains passive, then every Map Descriptor should have Passive as its function. Consequently, the Server device will write data to the FieldServers Data Arrays, and the Client device will read that data from the same Data Arrays, making the operation of the FieldServer much like that of a normal data Server on an office network.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 18 of 89
4.3
A Responsible Map Descriptor is a Map Descriptor that inherently monitors the quality of the data that it is mapping and can be recognized by the Function parameter field. The following are all Responsible Map Descriptors.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 19 of 89
This command is triggered by writing any value to Data_Array_Name at Data_Array_Offset. The retrieved data is stored as follows: Offset from Store_Data_Array_Offset 0 Description Program number
, Data_Array_Name , Lut_triggers
, Data_Array_Offset , 13
, Function , Awt
, Node_Name , LUT_GRF6_0
, GRAFIK_command , Set_tclk
, DA_Lut_List , Set_tclk
, DA_Lut_List_Offset ,0
, Length ,1
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 20 of 89
The features described in this section may or may not be needed depending on the application where the FieldServer is implemented. If the application calls for straight passing of data without modification through the FieldServer, then the features in this section will probably not be useful.
5.1
Moves
The Moves function permits data to be moved from one Data Array to another. The function parameter within moves allows data manipulation to occur while moving the data, e.g: Logic operation, Integer to floating point conversion, etc. Scaling, Logic and Math are also possible while moving data With the exception of Conditional Moves (see 5.2.9), each Data Array location may only act as the target location of one Responsible Move. This ensures that the data source can be uniquely determined in order to establish source data validity, and so that a write through the target data location is directed to the appropriate location. Moves will execute whenever the source data changes or the scan interval (if specified) expires. If a task name but no scan interval is defined, a default scan interval of 1s is assumed. A Move operation must specify the following elements: Source_Data_Array The name of the Data Array from which data is to be copied. Source_Offset The offset within the Data Array from which data is to be copied Target_Data_Array The name of the Data Array to which data is to be copied Target_Offset The offset within the Data Array to which data is to be copied The following elements are optional: The number of consecutive source Data Array values to be moved to consecutive Length target locations, starting at the respective offsets If a task name is specified, the move operation becomes a continuous task on the Task_Name FieldServer that is executed at the scan interval specified. The time interval at which the task will be repeated. A task name must be specified if Scan_Interval a scan interval is specified. Defines move functionality, e.g. byte order manipulation. Functions are summarized Function in Figure VI. The name of a Data Array to be used for conditional moves. See Section 5.1.1.3 for Conditional_Data_Array more information. The offset into the Conditional_Data_Array where the conditional bits for the move Conditional_Offset are defined. The value found at this specified location must be non-zero for the move to be executed. If the value is zero, the move is inhibited.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 21 of 89
Move is reversible, meaning data can move from Target_DA to Source_DA if applicable (writeable points
, Source_Data_Array , Source_DA
, Source_Offset ,0
, Target_Data_Array , Target_DA
, Target_Offset , 40
, Length ,5
Five Floating point values are moved from the first offset of Source_DA to Offset 40 of Target DA
5.1.1.2 Special Application: Grouping Data The location of data in Data Arrays on the FieldServer is determined by corresponding Map Descriptors. Should a Client poll the FieldServer for data spanning more than one Map Descriptor, the FieldServer will not know which Map Descriptor to use. This can be circumvented by moving data from multiple Client Side Source Data Arrays to a single Server Side Target Data Array. This Data Array should be larger (of greater length) than the maximum poll length of the Client.
One Server Data Array means One Server Map Descriptor is possible
Remote Client can now poll the FieldServer using large poll lengths without fear of hitting undefined registers.
Example Consider a Modbus Client needing registers 40001 through 40050 from the FieldServer. The poll lengths used to obtain this data are unknown. This could be configured in the FieldServer Server side as follows: Configuration 1: Map Descriptor 1 serves up 40001 Length 25 : Map Descriptor 2 serves up 40026 Length 25
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 22 of 89
If the two poll blocks fall within these two address spans, the poll will be successful, however, if all 50 registers are polled in a single poll it will fail Configuration 2: Map Descriptor 1 serves up 40001 Length 50 For this to work, all 50 points must be contiguous in the same Data Array so that one Map Descriptor can be created. If all 50 registers are polled in a single poll it will be successful. If the Client polling algorithm keeps a fixed length of 50, and then decides to poll address 40050, length 50, the poll will fail because addresses 40051 through 40099 are not declared in the FieldServer. Map Descriptor 1 serves up 40001 Length 200 For this to work, points must be contiguous in the Data Array, and the Data Array length must be at least 200. Since Modbus can poll a maximum length of 125, a Client cannot poll the required registers and encounter an address that is not configured. This is therefore the most robust solution, and only costs a few points.
Configuration 3.
5.1.1.3 Special Application: Separating Responsible Map Descriptors Responsible Map Descriptors are active Map Descriptors that control the Communications (see section 4). Two Responsible Map Descriptors cannot share the same Data Array Offset due to monitoring functions present in the kernel (Refer to Section 4.3 for more information). If two Responsible Map Descriptors require access to the same data, the data can be made accessible to the second Responsible Map Descriptor by moving it to a second Data Array.
Server 1
Move
Rdbc
Data Array 2
Wrbx
Server 2
5.1.1.4
Special Application:
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 23 of 89
5.2
It is often necessary to manipulate incoming data to create the necessary outgoing data by either joining smaller data types to create a larger data type, or splitting larger data types to deliver smaller data types. An example of this is Modbus, where two 16 bit registers are used to transfer a 32 bit floating point value. Upon receipt of these two registers, the FieldServer needs to join the integers to extract the floating point value. The Type Casting moves described below perform these kinds of operations
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 24 of 89
, Source_Data_Array , Source_DA
, Source_Offset ,0
, Target_Data_Array , Target_DA
, Target_Offset , 40
, Length ,5
Ten 16 Bit Integers are taken from Source_DA and combined in twos to make up 5 floating point values
Length refers to the data type referenced in the Function. eg: If n is the value shown in Length, then: Join_Float creates n Floats Split_Float disassembles n Floats Join_Int16 Creates n Integers Bit_Extract extracts n Bits, etc
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 25 of 89
Bit_Pack
Bit_Move
Function The function extracts bits out of the source Data_Array Registers at the Data Array offset specified.. The bits are placed into the destination array in sequence. Only one bit is allocated per offset. If the source array is of Bit Data Array type, a straight move is performed. The function extracts the binary version of each source offset and packs the bits into the Data Array offset specified. The number of bits packed depends on the target Data type (e.g: Bytes will get 8 bits, Floats will get 32, etc..). The length will specify the number of bits to pack. If the destination Array is a Bit data type, a straight move is performed. The function extracts a subset of bits out of a source Register offset and transfers these to a destination Register offset in packed form. Length specifies the number of bits to be extracted.
Keywords
Function The parameter specifies the bit offset within a word to start at when performing a bit move. For Bit_Extract operations, the source bit offset in the word pointed to by the Source_Offset parameter is implied. For Bit_Pack operations, the bit offset within the word pointed to by Target_Offset is implied. The length parameter specifies the number of bits to be extracted/packed.
Bit_Offset*
Length*
Default 1
, Source_Data_Array , Source_DA
, Source_Offset ,5
, Target_Data_Array , Target_DA
, Target_Offset ,0
, Length , 48
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 26 of 89
, Source_Data_Array , Source_DA
, Source_Offset , 10
, Target_Data_Array , Target_DA
, Target_Offset ,2
, Length , 12
, Source_Data_Array , Source_DA
, Source_Offset ,0
, Bit_Offset ,8
, Target_Data_Array , Target_DA
, Target_Offset ,0
, Length ,3
Bits 0 - 10 are each used to specify a unique event, and each has a corresponding integer value determined by the binary contribution it makes to the integer value. For example, bit 10 has an integer value of 1024 as its weighting in the integer value is 2 to the power 10. A single packed bit integer with a value of 1034 signifies a blown rectifier fuse, a hardware shutdown, and a battery discharge (sum of the values for the corresponding events). The value 1034 has no meaning as such, but when the integer is unpacked the individual data bits communicate the required information. This is depicted in the following diagram.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 27 of 89
5.2.7.1
, Data_Array_Name , Source_DA
, Data_Array_Offset ,0
, Node_Name , UPS_01
, Function , Rdbc
, Address , 40289
, Length ,1
, Source_Data_Array , Source_DA
, Source _Offset ,0
, Target_Data_Array , Target_DA
, Target_Offset ,0
, Length , 10
Target_DA offsets 0 to 9 now contain the first 10 bits of Register 40289. These can now be served as bits to the Protocol of choice.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 28 of 89
The following data array can be configured to capture the status of a Node (Refer also to Section 6.1.1) Data Arrays Data_Array_Name DA_Comm_OK Target_DA
, Data_Array_Function , Node_Status ,-
Node status bits are only evaluated by the FieldServer when the data is accessed. Since the data is only accessed on update, the data will be neither accessed nor updated and a move would never occur. This can be circumvented by giving the move a Task_Name and specifying a Scan_Interval. Moves Function Move_Only
, Source_Data_Array , DA_Comm_OK
, Source_Offset ,0
, Target_Data_Array , Target_DA
, Target_Offset , 40
, Task_Name , PLC1_Status
, Scan_Interval ,1
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 29 of 89
5.2.9 Match-pattern
The match pattern move is used at run time to move a customized single value based on combinations of values in a Data Array as compared with preloaded customized criteria. The user builds a table of patterns (strings of tokens separated by -) each linked to a particular location in a target Data Array. A PATTERN DID NOT MATCH string may also be defined and linked to a Data Array location. A pattern is built based on the values in the Data Array at run time by the move function. The pattern built at run time is compared with the preloaded table of patterns. The tokens in each pattern must match exactly. If the preloaded pattern contains a wildcard (*), that token would not be compared. If the pattern matches a pattern in the table, its value will be stored in the target Data Array at the specified location. If the pattern does not match any of the preloaded patterns in the table a check is done for a PATTERN DID NOT MATCH string in table. If found, the corresponding value will be stored in the target Data Array. If a PATTERN DID NOT MATCH string is not defined, a default value of 1 will be stored and an SDO will be generated prompting the user to add a PATTERN DID NOT MATCH record to the table. In the example below, a combination of 4 values in a Tokens Data Array shows the status. The FieldServer can perform match-pattern arithmetic and store the status as a single number 0 thru 8. Data_Arrays Data_Array_Name Tokens Status
, Data_Array_Length ,4 ,1
Consider the following combinations of 4 values, here * is a wildcard. The token starting with the wildcard will not be compared. Data Array Values 37 46 46 20 36 * * 20 * 45 * 20 * 43 * 20 * * 45 20 * * 43 20 * * 42 20 * * 37 20 00 00 00 00 Status Description Good Channel disabled Fault indicated2 Fault, aeration indicated Spacing indicator Zeromatc channel fault Empty Pipe hi/lo flowrate comm. Error None of the above Status Value for Device 0 1 2 3 4 5 6 7 8 111
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual 5.2.9.1 Table of Patterns Configuration example Section Title Offset_Table Column Title Function Offset_Table_Name Provide name for Offset Table A unique value that will be stored if the pattern Table_Index_Value matches The pattern: is the delimiter which separates tokens in a Table_String pattern and should not be considered as part of pattern. * means ignore this token The number of Data Array items to be used to Length* build the pattern to compare with the Table string Offset_Table Offset_Table_Name SPR4052 SPR4052 SPR4052 SPR4052 SPR4052 SPR4052 SPR4052 SPR4052 SPR4052 SPR4052
Page 30 of 89
1-10, 000
Number of tokens in table string should be the same as length under Moves, 1.
, Table_String , 37-46-46-20 , 36-*-*-20 , *-45-*-20 , *-43-*-20 , *-*-45-20 , *-*-43-20 , *-*-42-20 , *-*-37-20 , 00-00-00-00 , PATTERN DID NOT MATCH
, Table_Index_Value ,0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 , 111
, Length ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,1
5.2.9.2 Moves Definition Moves Source_Data_Array , Source_Offset , Target_Data_Array , Target_Offset , Length , Function , Offset_Table_Name Tokens ,0 , Status ,0 ,4 , Match-pattern , SPR4052 The Status Data Array will contain only the numbers 0 thru 8 or 111 depending upon the combinations existing in the Tokens Data Array 5.2.9.3 Table String Composition Source Data Array Source Data Array Values Format 55 15 0 255 Byte 555 15 0 -2550 INT, UINT16, UINT32 55.12 15.123 0 255 1101
5 6
Description Two Hex Characters Just as decimal values Requires period and two decimal places. Binary pattern
FLOAT Bit
You could insert * in place of any token if the value for that token is unimportant. 2550 is negative; -- two negative signs, one is considered as delimiter
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 31 of 89
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 32 of 89
5.2.10.1 Conditional Moves: Example 1 In this example, the user needs to move the data from one of two source locations based on the status of bit 1 or 2 of the conditional Data Array. If bit 1 is high, then the data from Source_1 will be moved. If bit 2 is high, the Data from Source_2 will be moved. The kernel checks the condition of the bits every second for a change in status.
Moves Source_Data_Array Source_1 Source_2
, Source_Offset ,0 ,0
, Target_Offset , 00 , 01
, Length ,1 ,1
, Conditional_Offset ,1 ,1
, Task_Name ,a ,b
, Scan_Interval ,1 ,1
5.2.10.2 Conditional MovesExample 2 In this example, the data from DA_GV_01 will be moved to Gas_Snapshot only when DA_GP_PW_01 or DA_GL_PA_01 is updated on offset 192. In this example all of the Data Arrays are bits, but analog data types will work as well.
Moves Source_Data_Array DA_GV_01 DA_GV_01
, Target_Offset , 00 , 01
, Length ,1 ,1
, Task_Name ,a ,b
, Scan_Interval ,1 ,1
The Conditional Move that executed last becomes the Responsible Move by which data validity is determined, and through which write operations are routed. If none of the Conditional Moves targeting a specific location have executed, the Conditional Move defined last acts as the Responsible Move.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 33 of 89
5.3
Mathematical functions
Mathematical functions implement subset of math functions of Data Array values. Some single-operator functions can be incorporated into Moves, but Multi-operator/operand functions must be defined in the Math block. The length of the move defines the number of input operands. The following table shows the Mathematics functions and their text representation: Operator (csv text) ADD SUB MULT DIV GTE LTE GT LT EQ NE SQ SQRT PER Mathematics Operator + * / >= <= > < = != Square Square root % Notes
All operands are combined and a single output is produced for n(=length) of input values Each move works as follows: value_of_(DA_SDA1 offset0) MathOperator value_of_(DA_SDA1 offset1) Result is stored in DA_TDA offset. e.g. (for GTE) value1 = DA_SDA1[0] ; value2 = DA_SDA1[1] if value1 GTE value2, 1 will be stored at DA_TDA[10] else 0 will be stored. The length parameter is always 1 as only one operation can be performed per move n outputs are produced for n (=length) values stored in sequence starting at the Target Offset. For 2 values A and B.result of A PER B will be (A/B)*100 which will be stored in the target Data Array..
, Source_Data_Array , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1 , DA_SDA1
, Source_Offset ,0 ,0 ,0 , 10 ,0 , 10 ,0 ,0 ,0 ,0 ,0 ,0 ,0
, Target_Data_Array , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA , DA_TDA
, Length , 10 , 10 ,4 ,3 ,4 ,2 ,1 ,1 ,1 ,1 ,1 ,1 ,1
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 34 of 89
The following fields are specific to the Math & Logic definition: DAI1...DAI4 : DOI1...DOI4 : DAO: DOO: FN1...FN4: input Data Arrays 1 through 4 input Data Array offsets 1 through 4 output Data Array output Data Array offset logic functions 1....4 (permitted values: ADD, SUB, MULT, DIV, GTE, LTE, GT, LT, EQ, NE, SQRT, SQ, AND , OR, NOT, - (no setting))
This definition will result in the following operation: DA_5[21] = Sqrt( ( ( DA_1[0] + DA_2[1] ) - DA_3[2] ) * DA_4[3] ) Math Task_Name Task_105,
, Scan_Interval 1,
, DAI1 DA_1,
, DOI1 0,
, DAI2 DA_2,
, DOI2 1,
, DAI3 DA_3,
, DOI3 2,
, DAI4 DA_4,
, DOI4 3,
, FN1 Div,
, FN2 Sub,
, FN3 Mult,
, FN4 Sq,
, DAO DA_5,
, DOO 21
This definition will result in the following operation: DA_5[21] = ( ( ( DA_1[0] / DA_2[1] ) - DA_3[2] ) * DA_4[3] )
2
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 35 of 89
, Scan_Interval ,1
, DAI1 , DA_1
, DOI1 ,0
, DAI2 , DA_2
, DOI2 ,0
, FN1 , Per
, DAO , DA_5
, DOO ,0
This definition will result in the following operation: DA_5[0] = DA_1[0] Per(%) DA_2[0] Or DA_5[0] = (DA_1[0] /DA_2[0]) * 100 i.e. if DA_1[0] = 10 and DA_2[0] = 20 then this means Da_1[0] is 50 % of Da_2[0] so DA_5[0] will contain 50.
Length*
5.3.4.1 Truncate Result Example Math DAI1 , DAI2 , DAI3 , FN1 , FN2 , DAO , DOI1 , DOI2 , DOI3 , DOO , Length , Truncate_Results DA_X , DA_17 , DA_17 , DIV , MULT , DA_Z , 0 ,0 ,0 ,0 ,1 , Yes
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 36 of 89
5.4
Logic
Logic functions implement Boolean functions (True/False statements) of bit Data Array values. Single-operator logic can be incorporated into Moves, but Multi-operator/operand logic must be defined in the Logic block
, DOI1 ,0
, DAI2 , DA_2
, DOI2 ,1
, DAI3 , DA_3
, DOI3 ,2
, DAI4 , DA_4
, DOI4 ,3
, FN1 , AND
, FN2 , OR
, FN3 , AND
, FN4 , NOT
, DAO , DA_5
, DOO , 21
This definition will result in the following operation: DA_5[21] = ~ ( ( ( DA_1[0] & DA_2[1] ) | DA_3[2] ) & DA_4[3] )
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 37 of 89
5.5
Scaling
When writing a configuration file for the FieldServer, it may be required for the FieldServer to scale data before passing it on to the receiving devices. This can be accomplished in three different places in the FieldServer configuration: In the Client Side Map Descriptor section by adding scaling parameters. In the Server Side Map Descriptor section by adding scaling parameters In the Moves section by adding Scaling Parameters. In all cases, four keywords are added to the section that needs to be populated with the necessary scaling parameters. The FieldServer makes use of the four scaling parameters to calculate a slope and offset for scaling all incoming values. It is possible therefore, to do any linear value conversion that may be required.
5.5.1.1 Scaling function example - Converting Celsius to Fahrenheit: The following portion of a Map Descriptor example shows the settings required for a Client Map Descriptor to take a Fahrenheit temperature reading and store it into the Data Array as a Celsius value. Note that these parameters o do NOT define the data range, thus a temperature of 500 F will still be properly converted. Data_Array_Low_Scale 0 , Data_Array_High_Scale , 100 , Node_Low_Scale , 32 , Node_High_Scale , 212
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 38 of 89
5.5.2.1 Moves Scaling function example Multiplying values by 10: The following move example shows 5 values being moved from one Data Array to another (DA_Unscaled=>DA_Scaled). During the move, the values are multiplied by 10, because the scaling parameters state that A value from 0 to 10 in the Source is being represented as a value from 0 to 100 in the Target. Again, these do not represent limits, and so a value of 500 would also be scaled properly and end up as 5000 in the Target Data Array Offset.
Moves Function Scale
, Source_Data_Array , DA_Unscaled
, Source_Offset , 00
, Target_Data_Array , DA_Scaled
, Target_Offset , 00
, Length ,5
, Source_Low_Scale , 00
, Source_High_Scale , 10
, Target_Low_Scale , 00
, Target_High_Scale , 100
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 39 of 89
5.6
5.6.1 Introduction
Preloads provide a technique which allows parts of one or more Data Arrays to be initialized to specified values. The Preloads are defined in a configuration file and loaded once when the configuration file is loaded as the FieldServer starts. It is also possible to use the FieldServer scripting language to have the FieldServer load a configuration file and then poke values into the Data Arrays. For more information on this technique call FST Tech Support.
Data_Array_Name
Function Name of the Data Array to be preloaded. The Data Array must exist or be defined in the configuration file and its definition must precede the preload that references it. If not, System Error Message 10117 will be printed.
Legal Values
Up to 15 characters
alphanumeric
One of the following: Data_Array_Offset Preload_Data_Index Location Data_Array_Location Data_Array_Index Buffer_Offset Length
0 to maximum where maximum is the length of the Data Array being referenced less 1. e.g. If the Data Array length is 200, the maximum value of this parameter is 199.
Not used. A length of 1 is always applied. Specify the value to be used to initialize the Data Array Location. If the Data Array specified is a Data Array of Complex Data Objects (CDO) then the kernel stores the value to the objects Present_Value field. The value is assumed to be a floating point value and the format specified by the parameter below is ignored. This parameter tells the kernel how to interpret and apply the value specified using the Preload_Data_Value parameter. (not to be confused with the format of the Data Array). If this parameter is specified then the kernel takes the value specified by the parameter and uses it to assign a Name to the Data Array object if the Data Array is an array of Complex Data Objects (CDO).
Any number may be specified with a fractional part, e.g.0, 1, 1.01,-1, 123.456 7 A String .
Float, Bit, Byte, Uint16, 8 Uint32, Int16, Int32, String , A maximum of 39 characters. Leading/trailing spaces and tabs are ignored. Commas not supported; support for other special characters unknown, -
Preload_Obj_Name*
Strings: This has been tested with strings up to 320 characters long. Leading and trailing spaces and tabs are ignored, commas cannot be used and support for other special characters is unknown. Format must be specified as STRING. The case of the characters is preserved. 8 Must be specified as String if Preload_Value is String.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 40 of 89
The Data Array named DA_SDA1 must have been previously defined in the configuration file or else there will be a configuration error.
Format specified with a dash, therefore the value 11 will be type cast to an unsigned 32-bit integer. Omitting the value altogether would have the same effect.
Note: If the format of the Target Data Array is Bit, then the value 11 will not be stored as Bit arrays can only store 1 and 0.
The value 257 is cast to a floating point number. Preloads Data_Array_Name DA_1 DA_2
Only numbers in the range 0-255 inclusive can be stored in a BYTE array. The kernel chops off the part of the number that exceeds the byte. Therefore the value stored will be 1.
, Preload_Data_Index ,0 ,0
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 41 of 89
, Data_Format , FLOAT
, Data_Array_Length , 20
, Preload_Data_Value , -1
, Preload_Data_Format , FLOAT
, Preload_Data_Index ,0
Data_Format FLOAT
Data_Array_Length 20
Preload_Data_Value, 123.456,
Preload_Data_Format, FLOAT,
Preload_Data_Index 10
, Data_Format, , FLOAT,
, Data_Array_Length , 20
, Preload_Data_Format , STRING
, Preload_Data_Index ,1
The string Revision 123aA is stored starting in the 2nd element (index 1) of the Data Array named DA_1.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 42 of 89
, Preload_Data_Value , ABCD
, Preload_Data_Format , String
, Preload_Data_Index ,0
The value found in the 1st element of the Data Array will be 0x4241 (Ascii value of A) and the value found in the 2nd element will be 0x4443 (Ascii value of B). A UINT32 Data Array can store 2 characters per element.
, Preload_Data_Index ,0 ,0
The value 257 will be cast to a byte before it is stored. . Only numbers in the range 0-255 inclusive can be stored in a BYTE. The kernel chops off the part of the number that exceeds the byte and then stores this truncated value in the FLOAT array. Thus the value 257 will be stored in the 1st element of DA_1 and the value 1 in the 1st element of DA_2.
, Data_Format , AO
, Data_Array_Length , 20
, Preload_Data_Value , ABCDEFGHIJKLMNOPQRSTUV
, Preload_Data_Format , String
, Preload_Data_Index ,0
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 43 of 89
5.7
If the value in the Data Array changes, the FieldServer can be configured to save this changed value to its NonVolatile Memory up to 3 times a minute using the DA_Function_After_Store Parameter. On startup the value will be loaded from the Non-Volatile Memory into the Data Array. This value will only be stored 3 times a minute, so if more writes than that are done, the values will be stored in the Data Array, but not to the Non-Volatile Memory. Storing this value has performance impacts, so care must be taken to store this value only if needed. There is a limit to the number of values that can be stored from a single data array: UINT32: 9 FLOAT: 9 SINT32: 9 UINT16: 19 SINT16: 19 BYTE: 39 Example Data_Arrays Data_Array_Name DA_NV_UINT32
, Data_Format , UINT32
, Data_Array_Length ,1
, DA_Function_After_Store , Non_Volatile
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 44 of 89
6 6.1
Function Provide name for Data Array Provides Data format Number of Data Objects Special function for Data Array
, Data_Format , Bit
, Data_Array_Length , 256
, Data_Array_Function , Node_Status
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 45 of 89
6.1.2 Alias_Node_ID
If you have two Nodes with the same Node_ID or your Node_IDs are longer than 255, the Node Status Function as described above will not work correctly. In such cases, each Node can be assigned an Alias_Node_ID which can be used to provide Node Status. Typical Data Array Parameters are: Section Title Data_Arrays Column Title Data_Array_Name Data_Format Data_Array_Length Data_Array_Function*
Function Provide name for Data Array Provides data format Number of Data Objects Special function for the Data Array
Legal Values Up to 15 alphanumeric characters BIT Minimum of 256 bits Alias_Node_Status, None
, Data_Format , Bit
, Data_Array_Length , 900
, Data_Array_Function , Alias_Node_Status
, Node_ID ,1 ,1
, Alias_Node_ID ,3 , 300
, Port , P1 , P2
Alias_Node_Status differs from Node_Status as follows: If a Node does not have an Alias_Node_ID defined then that Nodes status will not be reflected in the Data Array. The Alias_Node_IDs can be any positive whole number including zero up to the limit of the maximum Data Array size.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 46 of 89
6.1.4 Node_Online_Bits
This Data Array function allows the user to specify Nodes and Subnets for which communication status is required. Example: Typical Data Array Parameters are: Section Title Data_Arrays Column Title Data_Array_Name Data_Format Data_Array_Length Data_Array_Function
Function Provide name for Data Array Provides Data format If specified, this allows the user to configure the number subsequent nodes after the Node_ID. Special function for Data Array If configured, the Node address of the specified Node will be at offset 0. The length parameter will be used to determine the number of Node addresses starting from the Node_ID. If not declared or specified as -, Node_ID 0 will be at offset 0. This allows the subnet of the Node to be declared. If subnets are not used, this parameter can be excluded. If specified as -, the subnet is ignored and all Nodes will be found.
15
Node_ID*
1 to 256, -
Subnet_ID*
0 to 256, -
, Data_Array_Length , 30 , 30 , 30 , 30 , 30 , 30
, Node_ID ,1 ,1 , 10 , 10 , 10 , 10
, Subnet_ID ,,1 ,2 ,3 ,4 ,5
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 47 of 89
6.2
Connection Parameters
6.2.1 Node_Retire_Delay
When a FieldServer is started up, it polls all Nodes. Nodes that respond within the specified timeout period (seconds) will be marked online. Nodes failing to respond within the timeout period will be repeatedly polled for the length of time specified in the Node_Retire_Delay parameter (seconds). Once this period has expired, there will be one further poll and if the Node does not respond within the specified timeout period, it will be retired. The FieldServer must be restarted for retired or new Nodes to be identified. This is an optional parameter. If not set, the FiledServer will continue retrying indefinitely. This would be useful in a situation where there are plans for expansion and some Nodes have not yet been installed and so would never respond. Example Connections Port P1 P2 P3 Nodes Node_Name Dev1 Dev2 Dev3
, Node_Retire_Delay , 10 , 10 , 10
, Node_ID ,1 ,2 ,3
, Port , P1 , P2 , P3
, Retry_Interval ,0 ,0 ,0
, Recovery_Interval ,0 ,0 ,0
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 48 of 89
DYNAMIC PARAMETERS
Most FieldServer parameters are specified in a configuration file and are fixed. A growing number, however, may be changed dynamically using values found in Data Arrays. We call these Dynamic Parameters. The following parameters can be dynamically configured. Parameter Node_ID Section Title Nodes Notes This parameter typically describes the Server device address of a communications session. Many drivers use this parameter and the meaning of the parameter is dependent on its context. e.g. BACnet: Used as the MAC address DNP3: Used as the local station ID Similar to changing the System_Node_ID but specifically designed for use on ProtoCessors because it also writes the new ID down to the PIC where BACnet is implemented.
System_Node_ID
FieldServer
BACnet_MAC_Address
FieldServer
It is possible to control the Node_ID of the Server Node by including a special task in the Configuration file that watches the value of a single element of a Data Array. When the value is updated then this task takes the value and replaces the Node_ID of a designated Node so that its new Node_ID is the value found in the Data Array. This is illustrated in the following diagram. This new Node_ID can be saved to the Non-Volatile Memory so that it isnt lost on a power cycle. When the device starts up again, the stored value will be used.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 49 of 89
Remote Client finds a Node with Node_ID dependent on the data read from the remote Server device.
Remote Client
Browse for nodes/devices and then browse for points. Finds Node_ID as updated with data from the remote Server device
Server Side
Server Side
Client Side
Polls for Data Response data contains Server Side Node ID. Response unpacked and stored in Data Array A specially configured task uses the data to change the Node_ID of the server node in the FIeldServer.
Client Side
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 50 of 89
Descriptor_Name
Name of the Object that will be affected by the Dynamic Parameter function.
Save*
Name of Data Array from which the parameter value is taken. Offset into the Data Array from which the parameter value is taken. These parameters can be used to define a range of offsets that are affected by this command. The save value enables or disables making the change permanent. If yes, the value will be stored and used next time on start-up as the Node_ID. If no, the change will only remain until the next power cycle, at which time the value in the configuration file will be used.
Legal Values Change_Node_ID Change_System_Node_ID Change_System_MAC_Addr One of the Node names specified as described in Appendix B.4.5, or the Bridge Title of the FieldServer specified as described in Appendix B.4.1. Refer to examples below for more information. One of the Data_Array_Names specified as described under Appendix B.4.2 0 to (Data_Array_Length -1) as defined in Appendix B.4.2 Positive integer, 0, -
Yes, No
7.1.3 Examples
7.1.3.1 Example 1- Dynamic Allocation of Node ID The parameter value is taken from the specified Data Array and Data Array Offset, and is used to modify the parameter specified under Function of the object (e.g. Node) specified under Descriptor_Name, subject to the limits set by Low_Limit and High_Limit. In this example, when the value of Node_Array offset 160 is updated (presumably by a driver) then the FieldServer will check the value is in the range 0 to 255 inclusive. If it is, it will look for the Node called PLC_1. If found, the Node_ID will be changed to the new value.
Dynamic_Parameters Function , Descriptor_Name , Data_Array_Name , Data_Array_Offset , Low_Limit , High_Limit , Save Change_Node_ID , PLC_1 , Node_Array , 160 ,0 , 255 , Yes
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 51 of 89
7.1.3.2 Example 2 Dynamic Allocation of System Node ID The FieldServer watches DA_NODE_ID_NEW offset 0. When the data is updated, the FieldServer looks for a Node named NODE_1. If a valid one is found then the NODE_ID of that Node will be changed and the FieldServer will print a message reporting the change.
Dynamic_Parameters Function , Descriptor_Name , Data_Array_Name , Data_Array_Offset , Low_Limit , High_Limit , Save Change_System_Node_ID , NODE_1 , DA_NODE_ID_NEW , 0 ,0 , 255 , Yes
The Low_Limit and High_Limit parameters may be omitted in which case the Node_ID is not validated against them. The save value enables or disables making the change permanent. If yes, the value will be stored and used next time on start-up as the Node_ID. If no, the change will only remain until the next power cycle, at which time the value in the configuration file will be used. 7.1.3.3 Example 3- Dynamic allocation of the BACnet MAC address Configuration and operation is the same as changing the System_Node_ID except that this command not only changes the value of the System_Node_ID parameter it also causes the firmware to write to the underlying PIC on the FieldServer to have it start using the new ID.
Dynamic_Parameters Function , Descriptor_Name , Data_Array_Name , Data_Array_Offset , Low_Limit , High_Limit , Save Change_System_MAC_Addr , Bridge1 , DA_NODE_ID_NEW , 0 ,0 , 255 , Yes
In the example above, the FieldServer watches offset zero of the Data Array called DA_NODE_ID_NEW. If it changes and the new number is valid (in range) then the Bridge section of the configuration file is scanned until a bridge whose Title matches the descriptor name is found. Once found, the value of the System_Node_ID is updated and the driver writes the new ID down to the PIC on which the BACnet driver has been implemented. The Low_Limit and High_Limit parameters may be omitted in which case the Node_ID is not validated against them. The save value enables or disables making the change permanent. If Yes, the value will be stored and used next time on start-up as the System_MAC_Addr. If No, the change will only remain until the next power cycle, at which time the value in the configuration file will be used.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 52 of 89
DynParam:#3 Err. Node_ID Set from DA. Node=%s not found DynParam:#4 Err. Node_ID Validation failed. Lo=%ld Hi=%ld Rqd=%d Node=%s DynParam:#5 FYI. Node=%s Id=%d changed to %d (%s:%d=DA:off) DynParam:#6 DescName=%s too long. Err.
This message is printed when evaluating a Dynamic parameters task where the function = Change_Node_ID. The maximum length of the descriptor is 32 9 characters. While trying to change the Node_ID, the FieldServer could not find a Node 9 whose name matches the tasks Descriptor_Name parameter. The Node_ID was not changed because the dynamic value extracted from a DA did not satisfy the validation. Check that the devices have been correctly configured. Possibly mapping of DA and offset need adjustment. This message is printed each time the Node_ID is successfully updated dynamically. You may ignore this message if it confirms your expectations. This message is printed when evaluating a Dynamic parameters task where the function = Change_System_Node_ID or Change_System_MAC_Add. The 9 maximum length of the descriptor is 32 characters. The value extracted from the DA to be used as a dynamic parameter is out of range (based on the low and high values specified). Review the validation range in the configuration file and also review your mapping. Perhaps the DA:offset does not contain the new ID. This is confirmation of a change of a symnica parameter where the function is Change_System_Node_ID or Change_System_MAC_Add. You may ignore this message if it confirms your expectations. This message will be printed immediately after #8 if the platform is not a ProtoCessor. It can be ignored.
DynParam:#7 Err. System_Node_Id Validtn failed. Lo=%ld Hi=%ld Rqd=%d Node=%s DynParam:#8 FYI. Bridge=%s(%d) Id=%d changed to %d (%s:%d=DA:off) DynParam:#9 FYI. Cant write MAC_ADDR to PIC with this firmware
9 Edit the configuration, download the modified configuration and reset the FieldServer for the changes to take effect.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 53 of 89
Under certain conditions the FieldServer can be configured in a Port Expander Mode where statically configured Map Descriptors are not required to retrieve data from a Server Node.
8.1
When the FieldServer receives a poll from the Client Node, it scans its internal tables looking for a Map Descriptor that matches the poll. If such a Map Descriptor is found, the FieldServer responds with data from the appropriate Data Array. If no Map Descriptor is found, the FieldServer scans the list of configured Nodes and creates a Map Descriptor (cache) to fetch the data from that Node and returns this data to the Client. The FieldServer will continue to retrieve data from the Node for future polls from the Client Node. If the Client Node does not access the data for longer than the time configured under Cache_Time_To_Live, (Refer to Appendix B.4) then the FieldServer will stop reading the data and remove the Map Descriptor (cache).
8.2
Configuration is simpler - the FieldServer automatically creates and deletes Map Descriptors as required. If mapping changes are made to a Client, the FieldServer usually does not need to be reconfigured.
8.3
Port Expander Mode does not work with all combinations of drivers. If the FieldServer is used as a Pure Port Expander (Single Protocol) there is no restriction at all, e.g. Modbus RTU Port Expander. The following families of drivers support Port Expansion within the family: Modbus RTU Allen Bradley PCCC Metasys10
8.4
Three possible scenarios exist for Writes in Port Expansion Mode: A Temporary Read Map Descriptor already exists for the point being written. A Temporary Write Map Descriptor already exists for the point being written. No Temporary Map Descriptor exists for the point being written. In the first two cases data is simply witten through the FieldServer to the Server using the existing Temporary Data Arrays. Iin the third case, temporary Map Descriptors are created. It is possible to configure the FieldServer to send an immediate acknowledgement of a write instead of waiting for 11 acknowledgement of successful receipt from the Client. The Node parameter Write_Ack_Option needs to be configured. Refer to Appendix B.4.
10 11
Metasys is a registered trademark of Johnson Controls, Inc This setting only affects writes to points not configured/existing as read cache Map Descriptors. Writes to existing points on the FieldServer are acknowledged immediately
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 54 of 89
8.5
When multiple successive port expansion writes to the same point occur, there is a potential build-up of pending write transactions in the FieldServer, since the Server side may receive write transactions at a faster speed than they are completed on the Client side (depending on the speeds of the respective protocols). There are two fundamental ways of dealing with the potential accumulation of successive writes to the same point: Overwrite any pending write values that have not yet been sent to the Server are overwritten with the latest write value. This is the default option and it ensures that the last value that was received from the Client is written to the Server. Intervening writes may be lost. Blocking if it is important to preserve the sequence of write values to the same point (e.g. a switching sequence of on/off transitions), then the Server can be configured to handle writes in a blocking mode. Here successive writes to the same point are queued to a configurable maximum length. Writes are accepted from the Client until the queue is full, at which point further writes will be rejected. This option must be configured on the Server using the following Connection parameters and values: Column Title Write_Queue_Mode Function Mode for dealing with potential accumulation of successive writes to the same point can be configured. The length of the queue can be configured if blocking mode is set. Blocking will occur when there is no more space on the Write_Queue. If size=0 every successive write is blocked. A message will be displayed when blocking occurs, except if the Queue_Size=0. Legal Values Overwrite, Blocking. Non-negative integer, 0
Write_Queue_Size
Connections Port , Baud , Parity , Data_Bits , Stop_Bits , Protocol , Handshaking , Poll_Delay , Write_Queue_Mode , Write_Queue_Size , Timeout P1 , 9600 , None , 8 ,1 , Modbus_RTU , None , 0.100s , Blocking ,5 , 8s
8.6
The example configuration file for this mode is available from FieldServer Technical Support if needed. Although Map Descriptor configuration is not required, Connections and Nodes do need to be configured. Connection Port P1 P2 Nodes Node_Name Dev1
, Server_Hold_Timeout , 12 ,-
, Node_ID ,1
, Protocol , mb_rtu
, Port , P2
, Timeout , 12
, Write_Ack_Option , Ack_Immediate
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 55 of 89
TIMING PARAMETERS
Under normal operation, the FieldServer will send a poll request to a Server device and that device will reply with a response. The amount of time between successive poll requests is called the Scan_Interval. The time between receiving a response from a Server device and the next poll request is called the Poll_Delay. If the FieldServer sends a poll request, and the Server device does not send a response, it is considered a timeout. The time the FieldServer waits before declaring a timeout can be adjusted by the Timeout parameter. If a timeout occurs, then the FieldServer will retry the poll request (number of times retried is specified by the retries parameter). The interval between Retries is specified by the Retry_Interval. The FieldServer will send poll requests at the end of each Retry_Interval. Once the specified numbers of Retries have been sent, the FieldServer will mark the Node offline. Once a Node has been marked offline, it will wait for a period specified by Recovery_Interval before sending another poll request. Once the communications have been re-established, the FieldServer will wait for a period called Probation_Delay, before marking the Node as online. Note 1: The Ic_Timeout parameter monitors the time between characters in a response. If the time exceeds the Ic_Timeout, the response is discarded and is considered a Timeout. Note 2: All parameters in bold above are configurable. See table below for where they are configured, and what the defaults will be if they are not configured. Refer also to Appendix B.2. Parameter Scan_Interval Poll_Delay Timeout Retry_Interval Retries Recovery_Interval Probation_Delay Ic_Timeout Default Value 2 seconds 0.05 seconds 2 seconds 10 seconds 3 times 30 seconds 1 minute 0.5 seconds Where Used Map Descriptor, Node, Connection Connection Map Descriptor, Node, Connection Node Node Node Node Map Descriptor, Node, Connection
Note 4: In the case of parameters that may be declared at the Connection, Node or Map Descriptor level, when the parameter is declared at more than one level, the Map Descriptor declaration takes highest priority, followed by the Node declaration and then the Connection declaration. Note 5: A non-response from the remote Server device causes a Timeout. The driver does nothing until a response is received or the timeout period has expired. Thus if a connection has two Nodes and one Node is producing Timeouts this will have the effect of slowing down communication for the other Node in the sense that the driver does nothing while the timeout timer is counting up to its setpoint. Once there is a timeout on one Node, the driver will not retry any Map Descriptors on that Node until the Retry_Interval has expired. Thus during the Retry_Interval the other Node will get 100% of the service.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 56 of 89
FieldServer
Server Device
Poll Scan-Interval Poll-Delay Poll Response Status: Node Online Timeout Retry-interval Poll Retries Poll Response
Poll
Recovery-Interval
Poll Response
Time
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 57 of 89
9.1
The RS-485 communications connection requires that line drive is asserted before sending a message. When the message is sent, the line drive must be turned off to allow other devices on the network to assert their line drives. Because the assertion and de-assertion of the line drive is not instantaneous, some time needs to be allowed between asserting the line drive and sending the message, as well as between the end of the message and deasserting the line drive. This time is specified by the Line_Drive_On and Line Drive_Off parameters. If R1 or R2 are declared as ports in the configuration file, then Line_Drive_On and Line_Drive_Off are set to 1ms by default, and need not be declared in the connection parameters unless the application requires that the line drive times are adjusted. If Line Drive times are set incorrectly, truncated messages and noise occur. If the time set is too long it could truncate a message from another device. If the time set is too short, the FieldServers message will be truncated. For P1-P8 (RS-232), the Line_Drive parameters default to 0. Line Drive is implemented on FieldServers using the RTS (Request to send) line on the RS-232 connection. Example // Client Side Connections Connections Port , Baud , Parity , Data_Bits , Stop_Bits , Protocol , Poll_Delay , Line_drive_on , Line_drive_off P8 , 9600 , None , 8 ,1 , Modbus_RTU , 0.100s , 0.001s , 0.001s Note 1: Line_Drive_On and Line_Drive_Off are not supported in the FS-X30 Series. Note 2: Handshaking is not supported. Line_Drive_Off as non-zero values. The RTS line can be enabled by specifying Line_Drive_On and
9.2
Many half-duplex serial communication channels generate noise when the channel switches direction (typically at the end of a transmission burst), causing spurious data to be received at either end. The FieldServer kernel implements a user-configurable timing sequence designed to suppress the reception of this spurious data. When the transmission ceases and releases the channel, noise can be generated at both the transmitting and receiving end. In a master-slave situation using poll and response messages this leads to four possible instances of squelch generation: Squelch received by the master at the end of a master to slave poll transmission. Squelch received by the slave at the end of a slave to master response transmission. Squelch received by the slave at the end of a master to slave poll transmission. Squelch received by the master at the end of a slave to master response transmission. The first two are examples of what is termed TX squelch, received by the transmitting port at the end of a message, the last two are examples of RX squelch, received by the receiving port at the end of a message. The timing diagram illustrates the four instances of squelch, and identifies time intervals controlled by two connection parameters, i.e. Squelch_Timer_Tx and Squelch_Timer_Rx. These timers are activated at the FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 58 of 89
appropriate moment, and for their duration prevent reception of data. Squelch_Timer_Tx starts at the end of a transmission (as defined by RTS becoming inactive), and Squelch_Timer_Rx starts at the end of a valid received message (as determined by the protocol driver). Note that the Squelch_Timer_Rx is only relevant to Servers as Clients will in any event disregard any spurious data received after a response.
1 2 3 6
RTS
Poll
Next Poll
Legend:
Master
Response
TX
1 2 3 4
Line_drive_on Line_drive_off Squelch_timer_TX Squelch_timer_RX Turnaround_delay Poll_delay Squelch received by master after poll.
RX
7 8
5 6 7
8 1 2
Deleted by Kernel before next poll Squelch received by slave after poll.
10 Deleted by Squelch_timer_RX
RTS
Response
Poll
Slave
TX
9 10
RX
4 5 3
Figure IX: Timing Diagram: Line Drive On/Off, Tx and Rx Squelch, Poll Delay, Turnaround Delay.
Note: Squelch_Timer_Tx and Squelch_Timer_Rx are not supported in the FS-X30 Series.
Example: Connections Port , Squelch_Timer_Tx , Squelch_Timer_Rx , Turnaround_Delay , Line_drive_On , Line_drive_Off P1 , 0.06 , 0.01 , 0.050 , 0.001 , 0.001
9.2.2 Statistics
Each connection keeps track of the number of bytes suppressed as a result of TX and Rx squelch timers. These may be viewed in the connection statistics screen.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 59 of 89
9.3
To force the RTS line high on the RS-232 Connection specify Line_Drive_Off and Line_Drive_On as non-zero values. Connections Port , Baud , Parity , Data_Bits , Stop_Bits , Protocol , Poll_Delay , Line_drive_On , Line_drive_Off P1 , 9600 , None , 8 ,1 , mb_rtu , 0.1 , 0.001 , 0.001
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 60 of 89
Data
12
Only Modbus RTU is supported for Hot Standby at present. Most other drivers could use this function but should refer to FST for assistance.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 61 of 89
ETHERNET
HUB2
PLC
Ethernet 10/100 Base T
Active FieldServer
Passive FieldServer
PLC
Ethernet 10/100 Base T
Active FieldServer
13
13
There is no way of connecting a PC to the Ethernet ports or monitoring FieldServers by Utilities when using this option.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 62 of 89
, Hot_Standby_Mode , Mode1
, HS_Designation , Primary
, Hot_Standby_Mode , Mode1
, HS_Designation , Secondary
Download the HSB_P.ini file to the FieldServer designated as Primary and the HSB_S.ini to the FieldServer 14 designated as Secondary. Please note that on the Download screen, the Local and Remote file names need to match. Restart the FieldServers. The Activ LED on the FieldServer designated as Primary should be solid yellow. Verify the operation by checking the error screen in Ruinet. There will be a line: System -> Hot Standby (ETH): This FieldServer now ACTIVE. Test the Hot Standby Configuration by disconnecting the power from the Primary FieldServer. The secondary FieldServers Activ LED should show solid Yellow and the Error screen should show an ACTIVE message as above. Reconnecting the power to the Primary FieldServer and disconnecting the power to the Secondary FieldServer should reinstate the original behavior of the FieldServer.
14
Refer to the Utilities manual for information on file downloading. FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 63 of 89
X
VN R1 R2 P1 P3 P4 P5 P6 P7 N1 N2 P2 P8 VN R1 R2 P1 P3 P4 P5 P6 P7 N1 N2 P2 P8
VN
VN
R1
R2
P1
P3
P4 P5
P6 P7
N1
X
VN R1 R2 P1 P3 P4 P5 P6 P7 N1 N2 P2 P8 P1 P3 P4 P5 P6 P7 P2
X
VN R1 R2 N1
X
PLC 1 PLC2
KEY RS-232 Data Transfers Internal Data Transfer over virtual Ethernet connection External Data Transfer over physical Ethernet connection
X X
Figure XII - Diagram Showing Data Integrity achieved using Virtual FieldServer Concept even with cable failures and bad data.
Mode 2 Hot Standby introduces the following new concepts to FieldServer configuration. Single Port Server Dual Port Server Tiers SCADA and PEX Keepalive Map Descriptors Server Name
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
N2
P8
N2
P2
P8
R1
R2
P1
P3
P4 P5
P6 P7
N1
N2
P2
P8
VN
R1
R2
P1
P3
P4 P5
P6 P7
N1
N2
P2
P8
VN
R1
R2
P1
P3
P4 P5
P6 P7
N1
N2
P2
P8
Page 64 of 89
HUB2
Passive FieldServer
HUB1
Serial Port
PLC
Active FieldServer
The RS-232 ports of the two FieldServers are routed via an RS-232 splitter device allowing them to be connected to the single RS-232 port of the PLC. These splitter devices are robust and manufactured using just a few passive electronic devices (diodes), to minimize the chances of failure. In this arrangement the two FieldServers have to poll the Server alternately to prevent serial message collisions. A token passing method is used to achieve this. The FieldServer with the token is allowed to poll the Server on its serial port. When the response is received, the token is transferred over the Ethernet to the other FieldServer which then takes its turn. Timeouts, lost or duplicate tokens or failed FieldServers are also managed in an elegant fashion. Clearly, data would be lost if the Single Port Server were to fail in any way.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 65 of 89
HUB2
Passive FieldServer
HUB1
Serial Port
PLC
Active FieldServer
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 66 of 89
, Data_Format , UINT16
, Data_Array_Length ,6
, Data_Array_Offset ,0 ,1 ,2 ,5
, Length ,1 ,1 ,1 ,1
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 67 of 89
R1
R2
N1 N1 N1 N1 VN VN
VN
R1 R2
N1
N2
P1
P2
P3
P4
P5
P6 P7
P8
R1
PLC5
PLC6
PLC7
PLC8
PLC9
PLC10
VN
R1 R2
N1
N2
P1
P2
P3
P4
P5
P6 P7
P8
R1
PLC1
PLC2
PLC3
PLC4
UPS
Primary and auxillary FS-X40 FieldServers are used to allows RS-232 connection to more than 8 PLCs. The dark blue boxes represent the physical FieldServers. The light gray boxes represent the information Servers The thin lines represent the RS-232/RS-485 serial connections. The physical Ethernet connections are NOT represented. The thick solid and dotted lines represent the logical Ethernet connections possible from FieldServer 1 to all possible sources of data. Connections from FieldServer 2 are not shown, but do exist. Redundancy is Achieved as Follows: When FieldServer 1 fails, FieldServer 2 takes over and remains Active until FieldServer 2 fails at which point FieldServer 1 takes over. If the PEX tier of FieldServer1 fails, the SCADA Tier of FieldServer 1 will get the data from the PEX Tier of FieldServer 2. FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
R2
P1
P2
P3
P4
P5
P6 P7
P8
R1
P1
P2
P3
P4
P5
P6 P7
P8
R2
P1
P2
P3
P4
P5
P6 P7
P8
N2
P1
P2
P3
P4
P5
P6 P7
P8
FieldServer Configuration Manual Notes: 1. The Primary fieldServers 1 & 2 each have 2 virtual FieldServers within them referred to as: Virtual FieldServer on Tier 1 or SCADA Tier virtual FieldServer Virtual FieldServer on Tier 2 or PEX Tier Virtual FieldServer. 2. 3. 4. 5. 6. 7. 8. The PEX Tier virtual FieldServers are connected to the Main PLCs via P1 to P6
Page 68 of 89
The Information Clients receive ALL the data via the R1 connection ports on the SCADA Tier virtual FieldServers. The SCADA Tier virtual FieldServers are not connected directly to any PLCs. These virtual FieldServers get all their data from either the PEX Tier virtual FieldServers or from the physical FieldServers 3 & 4. The SCADA Tier virtual FieldServer 1 normally gets its data from PEX Tier virtual FieldServer 1 (via virtual network connection VN) AND from physical FieldServer 3. If either physical FieldServer 1 fails, the information Client will get data from FieldServer 2. If either physical FieldServer 3 or 4 fails, then the FieldServer 1 or 2 SCADA virtual tier will get data from the other auxilary physical FieldServer. If the FieldServer1 SCADA Tier virtual FieldServer cannot get data from FieldServer 1 PEX Tier virtual FieldServer via virtual network connection VN, it will get the data from FieldServer 2 PEX Tier virtual FieldServer via physical network connections N1 or N2. Thus if a serial cable on FieldServer 1 is disconnected, the SCADA virtual FieldServer will automatically get the data from the FieldServer 2 PEX virtual FieldServer. The thick lines represent all possible logical connections from FieldServer 1 PEX Tier virtual FieldServer to the other FieldServers that it can communicate with. The solid lines are the default connections, and the dotted lines are the backup connections that are only used if there is a failure.
9.
10. If the Data Array name contains the string 'nocop' then its data will not be copied to the standby FieldServer.
, Data_Format , UINT16
, Data_Array_Length , 32
, Data_Array_Function , Hot_Standby_Status_Array
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 69 of 89
10.3.8.2 Cable Status Function Cable Status Function provides the cable status between the FieldServer and the Nodes. If the cable is good it is indicated by a 1 in the Cable Status Data Array. The offset number in the Data Array is as follows: Data Array Offset 0 1 2 3 4 5 6 7 8 9 12 13 Example: Data Arrays Data_Array_Name DA_Cable_Status Description P1 on Primary Serial P2 on Primary Serial P3 on Primary Serial P4 on Primary Serial P5 on Primary Serial P6 on Primary Serial P7 on Primary Serial P8 on Primary Serial R1 on Primary RS485 R2 on Primary RS485 N1 on Primary Ethernet N2 on Primary Ethernet Data Array Offset 16 17 18 19 20 21 22 23 24 25 28 29 Description P1 on Secondary Serial P2 on Secondary Serial P3 on Secondary Serial P4 on Secondary Serial P5 on Secondary Serial P6 on Secondary Serial P7 on Secondary Serial P8 on Secondary Serial R1 on Primary RS485 R2 on Primary RS485 N1 on Primary Ethernet N2 on Primary Ethernet
, Data_Format , Bit
, Data_Array_Length , 32
, Data_Array_Function , Cable_Status_Bits
15
The Cable Status bits take 60s for the change in status to be asserted as the system retries a few times when testing the connection. This 60 second delay is a housekeeping function and will not affect any process control operation.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 70 of 89
Appendix A.2.1.
// Set up the Modbus Server side // Data_Arrays Data_Array_Name , Data_Format DA_DO_01 , Bit Connections Port , Baud P1 , 9600 Nodes Node_Name RTU_Srv_11
, Data_Array_Length ,1
, Parity , None
, Data_Bits ,8
, Stop_Bits ,1
, Protocol , Modbus_RTU
, Node_ID , 11
, Protocol , Modbus_RTU
Map_Descriptors Map_Descriptor_Name , Data_Array_Name , Data_Array_Offset , Function , Node_Name , Address , Length SMD_DO1 , DA_DO_01 ,0 , Passive , RTU_Srv_11 , 00001 , 1 ignore //======================================================================= FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual // // Set up the Modbus Client side // Connections Port P2 Nodes Node_Name DEV11
Page 71 of 89
, Node_ID , 11
, Protocol , Modbus_RTU
, Port , P2
Map_Descriptors Map_Descriptor_Name , Data_Array_Name , Data_Array_Offset , Function , Node_Name , Address , Length SMB_BO1 , DA_DO_01 ,0 , Rdbc , DEV11 ,1 ,1 process
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 72 of 89
The purpose of the Driver Manual is to provide driver specific configuration information. When drivers are installed in the FieldServer the specific combination is assigned a Driver Configuration Code (DCC). The DCC covers the combination of drivers listed on the cover. In addition to the specific configuration instructions for each driver, these manuals provide drawings and default configuration files for the combination of drivers. The Driver Manual contains a section for both the Client and Server side software drivers. Each section of this supplement is split into two parts. The first describes the hardware and software included with the FieldServer, as well as providing additional information relating to getting the FieldServer set-up and connected. The next part discusses the configuration file in detail, and provides all the information needed to configure the driver related parameters. Appendix B.1.2. Driver Manuals as Part of the Documentation Set
In order to install and configure the FieldServer, proceed through the instructions in the Start-up Guide. Refer to the Driver Manual for connection information. If the default file is all that is needed then nothing further is required, it is already loaded onto the FieldServer. If it is necessary to modify the Configuration Files to suit specific needs, please refer to Section 2 of this manual for a general overview of the configuration file, and then refer to the specific driver supplements for configuration information on the drivers.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 73 of 89
In transferring data points from one protocol to another via the Data Arrays in the FieldServer, the integrity of the data format is retained. E.g. if a point representing a bit data type is transferred into a Data Array of type Float, the value will be a 32 bit floating point value that will only take on the values of 0 and 1. If this is transferred to an integer point in another protocol, the value will still only ever take on the values of 0 and 1 despite the type conversions. This can be overcome using Moves refer to Section 5.2
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Note: Titles in brackets indicate aliases Appendix B.4.1. Section Title FieldServer Column Title Title Cache_Age; (Cache_Age_Timeout) Cache_Size* Common Information
Page 74 of 89
Cache_Time_To_Live
Function Allows user to add title to main menu if desired. Title text may not contain spaces When poll block caching is used, data previously polled and stored in an internal data buffer is returned to the Server, providing the data is not too old. This parameter specifies the length of time cached data is valid. Specify size of Cache Used for Port Expansion. A cache is created for data from a Node for which no Map Descriptor is configured. If this data is not accessed for longer that the time specified by this parameter, the cache will be cleared. Data Arrays
Legal Values Title Text Time in seconds, 300s 0-1000; 80 Time in seconds, 300s
Data_Format
Legal Values Up to 15 Alpha Numeric Characters INT16, INT32, or BYTE; Specifies size of source value when scaling FLOAT; specifies floating point format for preloaded data in buffer. 0-10000 Refer to table in Appendix B.4.3, None
Number of Data Objects Special function for the Data Array If this parameter is specified, when a value different to the current value is written to the Data Array it will be stored in the FieldServers Non-Volatile Memory. On start-up this value is loaded from the Non-Volatile Memory into the Data Array. This value is only stored 3 times a minute, so if more writes than that are done, the values will be stored in the Data Array, but not to the Non-Volatile Memory. Storing this value has performance impacts, so care must be taken to store this value only if needed. Refer to Section 0
DA_Function_After_Store
Non-Volatile, -
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 75 of 89
The Data_Array_Function Keyword is used in the configuration file to get Data Array specific error conditions and statistics. The available keywords are listed below: Keyword Node_Online_Bits Node_Error_Bits Cable_Status_Bits Hot_Standby_Status_Bits Node_Detail_Stat (Dev_Detail_Stat) Description Bit 0 is unused. Every bit corresponds to the Node with that number up to 255. E.g.: Bit 3 corresponds to Node 3, etc. Refer to Section 6.1.4 See Section 10.3.8.2 See Section 10.3.8.1 A Data Array is created to reflect Node details. Handle can be set. Values are reflected in the following order: 0 = Device handle, 1 = Node port; 2 = connection; 3 = old station; 4 = station. Connection information f 0 = First value handle; 1 = port; 2 = old port; 5 = error count. Values in Data Array will reflect these values. Gives overview of all devices configured on the FieldServer. Cycles through all the devices on the FieldServer in the order that they are configured. Note that the Data Array needs to be long enough to store all device information. 0 = Handle; 1 = station; 2 = port; 3 = adapter; 4 = status; 6 = old station; 10 = Historical message count; 11 = minutes; 12 = hour; 13 = day; 14 = month. 15 = Historical error count; 16 = minutes; 17.= hour; 18 = day; 19 = month. The next device starts at position 20 and the same structure is repeated. Reporting will stop after all the devices have been reported or when the Data Array is full. Same except 0 = handle; 1 = port; 2 = adapter; 3 = status; 8 = old port; 9 = old adapter. Thereafter follow Historical message and Error blocks in the same format as above. Reports the number of errors per hour for each Node. Location in the Data Array is the station of the device i.e. if the device station is configured to be 10, position 10 in the Data Array will show the number of errors per hour. Errors for the past 60 minutes are stored. Same as above, except counting messages not errors. Percentage of messages generating errors over the past hour. Provides the communication status between the FieldServer and the actively mapped Nodes. Refer to Section 6.1.1 Where 2 nodes have the same Node_ID or Node_IDs are longer than 255, each Node can be assigned an Alias_Node_ID which can be used to provide Node Status. Refer to Section 6.1.2
Chan_Detail_Stat
Node_Overview_Stat
Chan_Overview_Stat
Dev_Error_Rates
Alias_Node_Status
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Appendix B.4.4. Section Title Connections Column Title Port Baud* Parity* Data_Bits* Stop_Bits Line_Drive_Off Line_Drive_On Ic_Timeout Turnaround_Delay (Turnaround_Time) Connections/ Adapters
Page 76 of 89
Client/Server_Mode
Node_Retire_Delay* Write_Queue_Mode*
Write_Queue_Size*
Bias_Mode*
Function Legal Values Specifies the port through which the device is connected to the 16 P1-P8, R1-R2 FieldServer. 300, 9600, Specifies Baud Rate 38400; Even, Odd, Specifies serial data byte parity None Sets number of data bits for serial port. 7, 8; Sets the stop bits for communications 1, 2 When using RS-485, specifies delay from end of message to when the RTS Time in line is deasserted seconds When using RS-485, specifies delay after RTS is asserted until message is Time in transmitted seconds Timeout in Specifies inter-character timeout period within a message once it starts seconds This is the time the Server takes to initiate a response after having Delay in received a poll. seconds Where two FieldServers are connected in Hot Standby mode each with a PEX and a SCADA Tier, if the SCADA Tier of one FieldServer polls the Client_Only SCADA Tier of the other FieldServer, that tier will start acting as a Server. Setting this parameter to Client_Only will prevent this happening. This parameter allows the user to configure a time after which a Node is Time (s), 0 no longer polled until the FieldServer is restarted. See Section 6.1.4 Mode for dealing with potential accumulation of successive writes to the Overwrite, same point can be configured. Blocking. The length of the queue can be configured if blocking mode is set. Blocking will occur when there is no more space on the Write_Queue. Non-negative If size=0 every successive write is blocked. A message will be displayed integer, 0 when blocking occurs, except if the Queue_Size=0. Only relevant to Protonode and X25. If this parameter is set to Yes or Enabled, it loads the RS-485 line by placing additional resistance on it This Enabled, Yes, has the benefit of making the signals cleaner in a noisy environment but Disabled, No may reduce the maximum number of devices possible in a multidrop configuration.
16
Not all ports shown are necessarily supported by the hardware. Consult the appropriate Instruction manual for details of the ports available on specific hardware.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Appendix B.4.5. Section Title Nodes Column Title Node_Name (Device_Name) Node_ID Protocol IP_Address Nodes
Page 77 of 89
Function Provides name for Node Specifies Node ID Information Specifies Protocol used IP address of Client PLC Specifies how many sequential errors must occur before marking a data buffer and poll block bad, and marking a device offline. The FieldServer will poll the device and if it receives no response will retry polling the device the number of times specified by the retries parameter. The FieldServer will attempt to recover the connection once the recovery interval has elapsed Interval between retries A Server Node could send contradictory information if its data comes from multiple Client Nodes, some of which are offline and others online, causing it to respond differently depending on what data is polled. This confuses some systems. This setting allows the user to select whether the Server Node should appear online or offline if there is a mix of Client Node Statuses. Ignore_Clients - causes the Server to behave explicitly not to depend on the status of the Client Node, but on the data validity only. i.e. non-expired data will be served whether or not the responsible Client Nodes are online. Any_Offline - suppress a data response if ANY of the responsible Client Nodes for the data range concerned are offline All_Offline - only suppress a data response if ALL of the responsible Client Nodes for the data range concerned are offline. Always_Respond overrides the data validity as well. i.e. it forces the Server Node to regard data as valid even if the Client Node is offline or the data has expired. Ack_Complete (default) - the Server waits for the Client Side write transaction to complete before acknowledging the Write request. This makes for good reliability but has a cost in terms of throughput. Ack_Immediate - fast, but less reliable. The Server immediately acknowledges a Write request before queuing the Client Side Write. The acknowledgement is thus not affected by the success or failure of the Client Side Write. Only recommended if the same points are updated regularly. Ack_Verified - most reliable, and slowest. The Server waits for a Client Side Write and Readback to be completed, and only updates the data value if a data comparison between the Client Side Write and Read values passes. If the transaction fails for any
Legal Values Up to 32 Alpha Numeric Characters 1-255 Modbus/TCP etc.. Valid IP address
Retries
Count Default 3
Retry_Interval
Interval in Seconds
Srv_Offline_Method
Write_Ack_Option
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 78 of 89
Enable_Write_Retries
Function reason or if the data comparison fails, the Server responds with a negative acknowledgement. The default write behavior is for a write operation (WRB or WRBX) to be attempted once only. If a timeout occurs the write operation is aborted. If set to yes, this parameter enables failed write requests to be retried. The number and timing of the write retries is then governed by the Retries and Retry_Interval parameters. Warning: ensure that repeated writes are safe for your application since a Write may be retried because of a transmission error in the Write acknowledgement, in which case the remote device will see two similar write requests.
Legal Values
Yes, No
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Appendix B.4.6. Section Title Map Descriptors Column Title Map_Descriptor_Name Data_Array_Name (DA_Name) Data_Array_Offset Map Descriptors
Page 79 of 89
Function Name of the Map Descriptor Name of Data Array where data is to be stored in the FieldServer Starting Location of Data Array
Function
Name of Node to fetch Data from Data Type in PLC File Type in PLC Block Number in PLC
Legal Values Up to 32 Alpha Numeric Characters One of the Data Array names as defined in Appendix B.4.2 0 to (Data_Array_Length -1) as defined in Appendix B.4.2 Rdbc - Read data buffer continuously Wrbc Write data buffer continuously Rdb - Read data buffer once Wrb - Write data buffer once Wrbx - Write data buffer on change One of the Node names specifies in "Client Node Descriptor" above See Driver Manual for validity and applicability. Any signed 32 bit integer in the range -2,147,483,647 to 2,147,483,647. 0 Any signed 32 bit integer in the range -2,147,483,647 to 2,147,483,647. 100 Any signed 32 bit integer in the range -2,147,483,647 to 2,147,483,647. 0 Any signed 32 bit integer in the range -2,147,483,647 to 2,147,483,647. 100
Data_Array_High_Scale* (Buffer_High_Scale)
Node_Low_Scale*
Node_High_Scale*
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 80 of 89
Readback_Option*
Function This Client Side parameter enables the user to configure the timing of a read after a write. The Readback operation will apply to all drivers that support Active Reads and Write-Through operations. Readback_Asynchronously: When a write occurs, the read will occur when scheduled Readback_On_Write: When a write occurs, set the timer to 0, so the Responsible Map Descriptor will get queued in the next cycle Readback_Immediately_On_Write: Prioritize both write and read to happen in a higher priority queue than normal reads. The Readback operation will apply to all drivers that support Active Reads and WriteThrough operation
Legal Values
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 81 of 89
Check Map Descriptor Offset, length, count Check Node_Name in csv file. Confirm that Active Map Descriptors are not added to a Server Node. Define the Client Node Descriptor connection in the CSV file. Specify a valid channel adapter or port.
10010
10011
Check Map Descriptor Offset, length, count. Check Node_Name, Node_ID and protocol in CSV file. Check CSV file spelling. Check CSV file. Increase the timeout on the Modbus/TCP Client. Ensure that a Client and a Server is configured for each
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Error Description wire. Connection mode of Hot_Standby_Data only supported in Hot Standby Mode1 Could not find nor create a Node. The data_points limit on the FieldServer has been reached A Server Node has been assigned to a Client Map Descriptor OR a Client Node does not have a connection/Server_Name Invalid length specified for Cable_Status_Bits An attempt to generate a write cache block failed because the Node did not have a connection. A protocol was specified in the configuration file, but the required driver is not loaded in the firmware (CB8MENU). The FieldServer did not respond due to a Data Array Age time exceeding the Cache Age time limit. There was a message overrun on Modbus TCP slave driver. The Client is polling too often for the FieldServer to respond and there is more than one message in the in-buffer. There should be overrun statistics on the Server Connection in question. Same as 10039, except the overrun is more than two messages. Invalid move function specified in configuration file, or move not defined. High and Low Scaling values are equal Move overruns Data Array. This usually means that the offset PLUS the length of the Move command is larger than the length of the Data Array. Move Offset lies outside the Data Array. This usually means that the offset of the Move command is larger than the length of the Data Array. Could not find Source Data Array for Move. Could not find Target Data Array for Move. Could not find Client Data Array for Move. Could not find Server Data Array for Move. Could not find Feedback Data Array for Move. Could not find Mode Data Array for Move. Data Array already has a responsible move Setpoint Moves are only allowed to be 1 item Action virtual wire
Page 82 of 89
10034
Correct the protocol in the configuration file Obtain the correct DCC
10038
10039
10045
10046
Actions: Check Data_Array Length: Check Move settings Target_Offset, Source_Offset, Client_Offset, Server_Offset, Feedback_Offset, Mode_Offset, Length
Make sure that the specified Data Array exists before specifying move.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Error Description in length. A move was defined, and a write occurred to the target Data Array, but cannot transfer to the Source Data Array because no Responsible Active Map Descriptor is defined. A move was defined, and a write occurred to the target Data Array, but cannot transfer to the Source Data Array because the Node associated with the Responsible Active Map Descriptor is offline. 8051bp03 or CB8MENU found SMCTCP.INI and FS_TCP.INI files, so it will delete FS_TCP.INI and use SMCTCP.INI in future. Old version of RUIBOOT.EXE being used. Illegal Node_ID. Map Descriptor length of 0 is not allowed. Map Descriptor length too large. Illegal Data Type for J-Bus. An attempt to generate a write cache block failed because the Node did not have a connection. Illegal Map Descriptor address. This section of Data Array already has a responsible Map Descriptor. Unable to add parameters from this line. Map Descriptor length greater than Data Array length Failed attempt to do a Modbus read from Node_ID 0. Illegal Modbus Map Descriptor length Illegal Modbus Map Descriptor address Check backup station number settings... PLC_Port_Count set to 1, but Hot Standby not configured for Mode2. Protocol specified in config file, but no such driver is loaded. Illegal Modbus Node ID An attempt to generate a write cache block failed because the Node did not have a connection The maximum number of concurrent cache blocks has been exceeded. A write cache_block poll did not occur Connection mode of Hot_Standby_Data is only Action
Page 83 of 89
10055
10056
10058
10059 10070 10071 10072 10073 10074 10075 10076 10077 10079 10082 10083 10084 10085 10085 10087 10089 10102
Obtain latest RUIBOOT or use manual method of setting IP address - see Utilities manual.
Must be in range 1 to 255. Typically a Node has a Server_Name specified, and a write to this Node occurred before the Server_Name mechanism discovered a valid connection.
10103 10104
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Error Description supported in Hot Standby Mode1 PLC_Port_Count = 1 only supported in hot_standby mode2. An invalid hot_standby_mode has been specified as part of the FieldServer parameters, Could not create cache block - possibly because the maximum number of data_points has been exceeded A BACNet alarm event was generated but the required Alarm Limits has not been set Hot_Standby "partner_discover" found a PRIMARY SECONDARY mismatch Hot_Standby "partner_discover" found an API Version mismatch Hot_Standby "partner_discover" found a DCC version mismatch Hot_Standby "partner_discover" found a config file mismatch A Node_ID > 255 was used in the Hot_Standby commbit configuration. A port other than P1/R1 was specified on an X20. The port handle has been changed to point to the only UART on X20. The Gateway Address for adapter N1 has not been specified. This FieldServer will only be accessible on the local TCP/IP subnet. The NETMASK for adapter N1 or N2 has not been specified. This FieldServer will not be accessible on the TCP/IP network through one or both of these adapters. The IP_ADDRESS for adapter N1 or N2 has not been specified. This FieldServer will not be accessible on the TCP/IP network through one or both of these adapters. An unrecognized rui_command was received. In the BACNet driver, the OPTION_LIST specified caused the packet buffer to be exceeded. As a result the packet buffer was truncated. The BACNet driver received a request for a read_property_multiple with multiple objects. An UDP socket buffer overflowed and UDP data was lost. The keyword MY_IP has been used in the FS_TCP.INI file. Action
Page 84 of 89
10105
10106
10107
Contact FST.
10116
10117
10118
10119
10120
10125
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Error 10129 10130 Description The keyword N1_IP has been used in the SMCTCP.INI file. UDP broadcast panics has been disabled until a hardwired send is added The ARP resolve queue has been overrun. This is typically the result of a mis-configuration on the FieldServer. A cache block was not created A temporary write block has been removed because an identical one existed. Write data might have been lost. Warning: the Server is responding with data from an explicit Map Descriptor that is not reading continuously Info: the inet Server received a write to input command that is not supported. Warning: A Server side driver tried to read from a Data_Object that has a WRBX as a responsible Map Descriptor. The data being read from the Server side might not be the same as on the Client side. A Server node is associated with more than one Client Node. An IP Fragmented packet was received while IP Defragmentation was disabled. The I/Net Server ignored a write to an Input The Baud Rate on a Connections Port has not been defined. The MSTP driver must run at a cycle time shorter that 10ms or proper operation cannot be guaranteed The Write Queue is full and data has been overwritten. This could be caused by using moves to do multiple write-thrus on a RDBC Map Descriptor. Up to and including Lutron driver: Data Array length for Area names too small Lutron driver: Data Array length for Scene names too small Lutron driver: Data Array length for Zone names too small Envirotronics SystemsPlus driver: The name Action Use the FS_TCP.INI file.
Page 85 of 89
10133
Check all IP_addresses, in particular the gateway address. The Client side plc_channel has not yet been discovered, or an attempt to write to an Analog_Input Data_Type
10134
10136
10209
10210
10214
10216
Display "RX IP fragments" stat in the Ethernet api stat screen. If this occurs frequently enable IP Defragmentation
10403
10404
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Error Description entered in the SysPlus_Cmd mapdesc field is not recognized or was not entered at all. Envirotronics SystemsPlus driver: The name entered in the SysPlus_Data_Type mapdesc field is not recognized or was not entered at all. Envirotronics SystemsPlus driver: The name entered in the Store_Data_Array_Name mapdesc field is not valid or was not entered at all. Envirotronics SystemsPlus driver: The name entered in the Par_Data_Array_Name mapdesc field is not valid or was not entered at all. Envirotronics SystemsPlus driver: The name entered in the SysPlus_Alarm_Name mapdesc field is not valid or was not entered at all. Envirotronics SystemsPlus driver: The requested number of events or auxs to set is more than set up in the parameter Data Array.. Siemens Cerberus driver: The counts Data Array has less than 14 data elements per panel and event countds could not be stored. Action
Page 86 of 89
11005
filled
in
with
valid
11006
11007
11008
11009
11010
Increase the number of data elements in the counts Data Array to 14 elements per panel. Use the event's panel, module and device numbers to define a Map Descriptor with Node_Name = panel. e.g For message: DRIVER-> CER : No mapdesc for panel 2, module 15, device 4, Create a mapdesc that will map to an address of15*256 + 4 = 3844, since there are always 256 devices per module for Cerberus. The mapdesc field block_number represents the Cerberus module number. A Cerberus mapdesc maps to addresses from module*256 + 0 to module*256 + (length-1), e.g. the following addresses are defined for a mapdesc of module 15 and length 4: (15*256 +0) ; (15*256 +1) ; (15*256 +2) ; (15*256 +3). Our example event will cause this error message since the greatest address is (15*256 +3) = 3843 and we need an address of 3844. A mapdesc with module 15 and length 5 will store the event ok, since (15*256 + (5-1)) = (15*256 +4) = 3844.
11011
Siemens Cerberus driver: The Client driver could not find a suitable Map Descriptor to store the incoming event. The error message reported the event's panel, module and device numbers.
11012
Envirotronics SystemsPlus driver: The SystemsPlus panel replied with "Not Monitored" when the driver tried to edit read scan alarm or tried to read alarm status. The driver message screen records the specific alarm's name
Refer to the SystemsPlus user manual to set up the alarm for monitoring in the panel. This message can only be solved in the panel and is not a driver problem.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Error 11013 Description A BACnet Ethernet packet was received on a network adapter that is not configured in the CSV file. Message will be ignored. An 802.3 (Hot Standby) packet was received on an incorrectly configured network adapter. Packet will be discarded. GE SRTP - SD016 message indicates NAK error. Action
Page 87 of 89
11014 11015
10Base5:
10BaseT:
802.3:
Arcnet:
Bandwidth:
FieldServer:
Ethernet:
Gateway:
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
Page 88 of 89
Description A concentrator is a hub repeater or concentrator that brings together the connections from multiple network Nodes. Hubs have moved past their origins as wire concentrator centers, and often house FieldServers, routers, and network-management devices. The Internet is a collection of over 2, 000 packet-switched networks located all over the world, all linked using the TCP/IP protocol. It links many university, government and research sites. IP is part of the TCP/IP suite. It is a session layer protocol that governs packet forwarding. Interoperability is the ability of one manufacturers computer equipment to operate alongside, communicate with, and exchange information with another vendors dissimilar computer equipment. A leased line is a transmission line reserved by a communications carrier for the private use of a customer. Examples of leased line services are 56 Kbps or T-1 lines. A LAN is a group of computers, each equipped with the appropriate network adapter card and software and connected by a cable, that share applications, data and peripherals. All connections are made by cable or wireless media, but a LAN does not use telephone services. It typically spans a single building or campus. Local User Interface A network is a system of computers, hardware and software that is connected over which data, files, and messages can be transmitted. Networks may be local or wide area. In open systems, no single manufacturer controls specifications for the architecture. The specifications are in the public domain, and developers can legally write to them. Open systems are crucial for interoperability. A packet is a collection of bits comprising data and control information, which is sent from one Node to another. In packet switching, data is segmented into packets and sent across a circuit shared by multiple subscribers. As the packet travels over the network, switches read the address and route the packet to its proper destination. X.25 and frame relay are types of packetswitching services. Protocol Front End A protocol is a standardized set of rules that specify how a conversation is to take place, including the format, timing, sequencing and/or error checking. A router is a network layer device that connects networks using the same Network-Layer protocol, for example TCP/IP or IPX. A router uses a standardized protocol, such as RIP, to move packets efficiently to their destination over an internetwork. A router provides greater control over paths and greater security than a FieldServer; however it is more difficult to set up and maintain. Remote User Interface. A Server is a computer that provides shared resources to network users. A Server typically has greater CPU power, number of CPUs, memory, cache, disk storage, and power supplies than a computer that is used as a single-user workstation. System User Interface
Interoperability:
Leased line:
Open Systems:
Packet:
Packet Switching:
PFE: Protocol:
Router:
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]
FieldServer Configuration Manual Term TCP/IP, Transmission Control Protocol/ Internet Protocol: Wide Area Network (WAN): Wireless LAN:
Page 89 of 89
Description TCP/IP is the protocol suite developed by the Advanced Research Projects Agency (ARPA), and is almost exclusively used on the Internet. It is also widely used in corporate internetworks, because of its superior design for WANs. TCP governs how packets are sequenced for transmission. IP provides a connectionless datagram service. TCP/IP is often used to generically refer to the entire suite of related protocols. A WAN consists of multiple LANs that are tied together via telephone services and/or fiber optic cabling. WANs may span a city, state, a country or even the world. A wireless LAN does not use cable, but rather radio or infrared to transmit packets through the air. Radio frequency (RF) and infrared are the most common types of wireless transmission.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com Tel: (408) 262-2299 Fax: (408) 262-2269 Toll Free: (888) 509-1970 email: [email protected]