Unity Fastlinx User Documentation
Unity Fastlinx User Documentation
Pymble 2073 NSW Australia Tel 61 2 9496 7300 Fax 61 2 9496 7399 www.citect.com
Unity FastLinx
User Documentation
Revision 2.0
User Documentation
Contents
1. Introduction ............................................................................................................................2 2. System Requirements ............................................................................................................3 3. Configuring a Linked I/O Device ........................................................................................4 4. Synchronisation Rules ..........................................................................................................10 4.1 OPC Protocol Specific.........................................................................................10 4.2 Unite, Modnet, Modbus, MBPlus Protocol Drivers ...........................................17
User Documentation
1. Introduction
The Unity FastLinx product provides the ability to seamlessly integrate tag management between the Schneider Unity Pro tag configuration platform and the CitectSCADA tag configuration system. This allows for the management of tags to be performed from either the CitectSCADA system, Unity Pro or both with each side being maintained in a synchronised state. The Unity FastLinx product also allows the import and export of tags from the CitectSCADA system to Unity Pro or from Unity Pro to the CitectSCADA system. The native Unity .STU file format is supported as well as the .XEF and .XSY XML Unity XML file formats.
User Documentation
2. System Requirements
Software CitectSCADA v5.5 Service Pack B (CitectSCADA v6.0 recommended) Unity Pro XL 1.0 (Unity Pro 2.0.2 recommended) NOTE Unity Pro S/M is not supported Operating System Windows XP Service Pack 1, Windows 2000 Service Pack3, Windows 2003 Server (not fully tested), Windows NT not supported Hardware Pentium 500 MHz, 256Mb RAM, 50Mb free HD (Pentium 2GHz, 512 Mb RAM, 256Mb free HD recommended)
User Documentation
Click on and the Express Wizard will be invoked. Alternatively the Express Wizard can be invoked via the CitectSCADA Editor Window through the Communication drop down box.
Figure 2, Selecting Express Wizard via the CitectSCADA Editor Window The following welcome screen for the Express Wizard will be displayed.
User Documentation
Click on
Figure 4, Express Wizard I/O Server selection screen. Select or create the I/O Server containing the I/O Device you wish to link to and click to proceed to the I/O Device selection screen.
User Documentation
Figure 6, Express Wizard I/O Device type selection. Select External I/O Device and click to continue to the protocol driver selection screen.
User Documentation
Click on
to proceed to the specific protocol driver configuration and then click to get to the Express Wizard link screen.
Figure 8, Express Wizard Link screen. Select the Link I/O Device box, Drop down the Database Type and select either Unity FastLinx Dynamic for the live synchronisation mode or Unity FastLinx Static for the XML based import/export mode.
User Documentation
Click on the to bring up the Unit FastLinx Link configuration dialog. The following dialog will be displayed.
Figure 9, Unity FastLinx Link Configuration. The following is a description of the fields. Project File The .STU file for the Unity Pro project to link with. To get access to a network location this should be a UNC path. XML File The XML file to import from or export to when in Static mode. Unity Profile (Not currently supported)
User Documentation
DCOM Server Name The name of the server running the Unity Pro application. DCOM User Name The name of the user to run the DCOM component under. Needs to be of the following format <Domain>\<User Name>. DCOM Password The password of the above user. Protocol Driver The driver protocol selected in the I/O device form in CitectSCADA. This will be selected automatically in CitectSCADA v6.0 and above. Logging (Not currently supported)
User Documentation
4. Synchronisation Rules
4.1 OPC Protocol Specific
The following is the behaviour for synchronisation when using the CitectSCADA OPC protocol driver based tags. With this protocol the CitectSCADA tag address is the Unity Tag name. The CitectSCADA tag name is purely an alias for the CitectSCADA project and does not need to match the Unity tag name. Tag names in CitectSCADA and Unity must be unique. Where there are duplicate address values in CitectSCADA these tag variables will be excluded from the synchronization process. The duplicate tag variables will be clearly set out in the transaction log. The duplicate tag variables will therefore be left in CitectSCADA, maintaining the same information prior to synchronization. Any changes to the Schneider tag variable will not be applied to the duplicate tag variables, and will not be maintained.
Type
Comment
REF
Type
%MW10
Comment
Schneider Tag 1
Result
SC_TAG1 INT SC_TAG1 Schneider Tag 1 SC_TAG1 INT %MW10 Schneider Tag 1
Scenario : Variable exists as a tag name in CitectSCADA in the same IO device but not a tag address Starting State CitectSCADA Name Address
SC_TAG1 SC_TAG0
Type
REAL
Comment
Schneider Tag 0
REF
Type
%MW10
Comment
Schneider Tag 0
Change
SC_TAG1 INT %MW120 Schneider Tag 1
Result This situation will cause a synchronisation error to occur The CitectSCADA framework will not allow the addition of the duplicate tag in CitectSCADA. The user is notified via the log file.
SC_TAG1 SC_TAG0 REAL Schneider Tag 0 SC_TAG0 REAL %MW10 Schneider Tag 0
10
User Documentation
SC_TAG1
INT
%MW120
Schneider Tag 1
Scenario : Variable exists as a tag name in CitectSCADA in a different IO device but not a tag address Starting State CitectSCADA Name Address
SC_TAG1 SC_TAG0
Type
REAL
Comment
Schneider Tag 0
REF
Type
%MW10
Comment
Schneider Tag 0
Change
SC_TAG1 INT %MW120 Schneider Tag 1
Result This situation will not cause a synchronisation error The CitectSCADA framework will allow the addition of the duplicate tag in CitectSCADA. The user is notified on the next compile of the project. Need to use tag prefix.
SC_TAG1 SC_TAG1 SC_TAG0 SC_TAG1 REAL INT Schneider Tag 0 Schneider Tag 1 %MW10 %MW120 SC_TAG0 SC_TAG1 REAL INT %MW10 %MW120 Schneider Tag 0 Schneider Tag 1
Type
REAL
Comment
Citect Tag 1
REF
Type
Comment
Result
SC_TAG1 SC_TAG1 REAL Citect Tag 1 SC_TAG1 Unlocated REAL Citect Tag 1
Scenario : Variable does not already exist in Schneider (Name != Address) Addition CitectSCADA Name Address
CI_TAG1 SC_TAG1
Type
REAL
Comment
Citect Tag 1
REF
Type
Comment
Result
CI_TAG1 SC_TAG1 REAL Citect Tag 1 SC_TAG1 Unlocated REAL Citect Tag 1
11
User Documentation
Scenario : Exists in CitectSCADA as tag name but not as address Starting State CitectSCADA Name Address
CI_TAG1 SC_TAG1
Type
REAL
Comment
Citect Tag 1
REF
%MW20
Type
REAL
Comment
Citect Tag 1
Addition
CI_TAG2 CI_TAG1 INT Citect Tag 2
Result
CI_TAG1 CI_TAG2 SC_TAG1 CI_TAG1 REAL INT Citect Tag 1 Citect Tag 2 %MW20 SC_TAG1 CI_TAG1 %MW20 Unlocated REAL INT Citect 1 Citect 2 Tag Tag
Type
INT
Comment
Citect Tag 1
REF
%MW20
Type
REAL
Comment
Citect Tag 1
Deletion
CI_TAG1 CI_TAG1 INT Citect Tag 1 %MW20
Result
%mw20
Scenario : CitectSCADA name and address is not identical Starting State CitectSCADA Name Address
CI_TAG1 CI_TAG2 SC_TAG1 CI_TAG1
Type
REAL INT
Comment
Citect Tag 1 Citect Tag 2
REF
%MW20 %MW30
Type
REAL INT
Comment
Citect Tag 1 Citect Tag 2
Deletion
CI_TAG1 SC_TAG1 REAL Citect Tag 1 %MW20
12
User Documentation
Result
CI_TAG2 CI_TAG1 INT Citect Tag 2 %MW30 CI_TAG1 %MW30 INT Citect Tag 2
Type
INT
Comment
Citect Tag 1
REF
%MW20
Type
REAL
Comment
Citect Tag 1
Deletion
CI_TAG1 CI_TAG1 INT Citect Tag 1 %MW20 CI_TAG1 %MW20 REAL Citect Tag 1
Result
%mw20
Scenario : CitectSCADA name and CitectSCADA address not identical Starting State CitectSCADA Name Address
CI_TAG1 CI_TAG2 SC_TAG1 CI_TAG1
Type
REAL INT
Comment
Citect Tag 1 Citect Tag 2
REF
%MW20 %MW30
Type
REAL INT
Comment
Citect Tag 1 Citect Tag 2
Deletion
CI_TAG1 CI_TAG2 SC_TAG1 CI_TAG1 REAL INT Citect Tag 1 Citect Tag 2 %MW20 %MW30 SC_TAG1 CI_TAG1 %MW20 %MW30 REAL INT Citect Tag 1 Citect Tag 2
Result
CI_TAG2 CI_TAG1 INT Citect Tag 2 %MW30 CI_TAG1 %MW30 INT Citect Tag 2
Scenario
Starting State CitectSCADA Name Address Schneider Name Address
Type
Comment
REF
Type
Comment
13
User Documentation
CI_TAG1
SC_TAG1
DIGITAL
Citect Tag 1
%M10
SC_TAG1
%M10
DIGITAL
Citect Tag 1
Change
CI_TAG1 SC_TAG1 INT Citect Tag 1 %M10
Type
INT
Comment
Citect Tag 1
REF
%MW10
Type
INT
Comment
Citect Tag 1
Change
NEW_TAG SC_TAG1 INT Citect Tag 1
Result
NEW_TAG SC_TAG1 INT Citect Tag 1 %MW10 SC_TAG1 %MW10 INT Citect Tag 1
Scenario : Name changed to a tag name that already exists in CitectSCADA Starting State CitectSCADA
Schneider
14
User Documentation
Name
CI_TAG1 NEW_TAG
Address
SC_TAG1 SC_TAG2
Type
INT REAL
Comment
Citect Tag 1 Citect Tag 2
REF
%MW10 %MW20
Name
SC_TAG1 SC_TAG2
Address
%MW10 %MW20
Type
INT REAL
Comment
Citect Tag 1 Citect Tag 2
Change
NEW_TAG SC_TAG1 INT Citect Tag 1 %MW10
Result - Outside the scope of FastLinx. This result will not be allowed by the CitectSCADA frame work. A snapshot on the CitectSCADA side will help define that as an error and will require the user to solve the issue before synchronisation.
NEW_TAG NEW_TAG SC_TAG1 SC_TAG2 INT REAL Citect Tag 1 Citect Tag 2 %MW10 %MW20 SC_TAG1 SC_TAG2 %MW10 %MW20 INT REAL Citect 1 Citect 2 Tag Tag
N/A N/A
15
User Documentation
16
User Documentation
%QB %NW %NW %NW %CH %CH %MW, %KW %MW, %KW
BYTE INT UINT BOOL (bit access) INT UINT STRING[2x] STRING
BYTE INT UINT DIGITAL INT UINT STRING STRING x 1 127 internal length of 16 is preserved TIME type is preserved DATE type is preserved TOD type is preserved DT type is preserved
17
User Documentation
A new tag created in CitectSCADA will subsequently be created in Unity Pro. The Unity Pro tag name will be the CitectSCADA tag name. The Unity Pro tag will be unlocated.
18
User Documentation
%QWx.y.z
INT
%QWx.y.z
INT
19
User Documentation
%QWx.y.z
UINT
%QWx.y.z
UINT
x 0- 99 : y 0 99 : z 0 999 n 0 65535 n 0 65535 n 0 32767 : x 0 - 127 n 0 65535 n 0 65535 n 0 65535 n 0 - 65535 n 0 - 65535 n 0 65535 n 0 65535 n 0 32767 : x 0 - 127 n 0 65535 n 0 - 65535 n 0 - 65535 n 0 - 65535
%MWn %MWn %MWn[x] %MWn[8] %MDWn %MDn %MFn %MDFn %KWn %KWn %KWn[x] %KWn[8] %KDWn %KDn %SDWn
INT UINT STRING STRING LONG LONG REAL REAL INT UINT STRING STRING LONG LONG LONG
%MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %KWn %KWn %KWn %KWn %KWn %KWn %SDn
INT UINT STRING[2x] STRING DINT DINT REAL REAL INT UINT STRING[2x] STRING DINT DINT DINT
%QWx.y.z %QWx.y.z
INT UINT
%QWx.y.z %QWx.y.z
INT UINT
%NWi.j.k
INT
%NWi.j:k
INT
20
User Documentation
%NWi.j.k
UINT
%NWi.j:k
UINT
63 i 0 127 : j 0 63 : k 0 63 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 32767: x 0-127 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 32767: x 0-127 n 0 65535
%SWn %SWn %SWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %MWn %KWn %KWn %KWn %KWn %KWn %KWn %KWn %KWn %KWn %KWn %KWn %KWn
INT UINT DINT INT BYTE UINT DINT UDINT WORD DWORD REAL TIME TOD DATE DT STRING[2x] STRING INT UINT DINT UDINT WORD DWORD TIME TOD DATE DT STRING[2x] STRING
%SWn %SWn %SDWn %MWn %MBn %MWn %MDWn %MDWn %MWn %MDWn %MFn %MDWn %MDWn %MDWn %MDWn[2] %MWn[x] %MWn[8] %KWn %KWn %KDWn %KDWn %KWn %KDWn %KDWn %KDWn %KDWn %KDWn[2] %KWn[x] %KWn[8]
INT UINT LONG INT BYTE UINT LONG LONG UINT LONG REAL LONG LONG LONG LONG STRING SRING INT UINT LONG LONG UINT LONG LONG LONG LONG LONG STRING[2x] STRING
21
User Documentation
CitectSCADA arrays are limited to no more than 256 bytes of data, ie 32 bit types 16 bit types 8 bit types 1 bit types have a maximum of 64 elements, have a maximum of 128 elements, have a maximum of 256 elements, have a maximum of 2048 elements
22
User Documentation
%IWn %IWn %IWn %IWn %IWn %IWn.b - 1 %IWn %Mn %MWn %MWn %MWn.b - 1 %MWn %MWn %MWn %MWn %MWn %IWn %MWn %IWn %MWn %MWn %IWn %MWn %IWn %MWn %IWn %MWn %IWn
UINT DWORD WORD UDINT REAL BOOL DINT EBOOL INT UINT BOOL DINT DWORD WORD UDINT REAL STRING STRING STRING[2x] STRING[2x] TIME TIME DATE DATE TOD TOD DT DT
UINT LONG INT LONG REAL DIGITAL LONG DIGITAL INT UINT DIGITAL LONG LONG INT LONG REAL STRING STRING STRING STRING LONG LONG LONG LONG LONG LONG LONG LONG
n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 b 1 - 16 n 0 - 65535 n 0 - 65535 n 0 65535 n 0 65535 n 0 65535 b 1 - 16 n 0 - 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 - 65535 n 0 - 65535 n 0 65535 x 1 - 127 n 0 65535 x 1 - 127 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535 n 0 65535
[0..x]
OF
23
User Documentation
OF
%Mn -1 %MWn -1 %MWn -1 %MWn -1 %MWn -1 %MWn -1 %MWn -1.b - 1 %MWn -1 %MWn -1 %MWn -1 %MWn -1 %MWn -1 %MWn -1 %MWn -1 %MWn -1
EBOOL INT UINT UDINT WORD DWORD BOOL DINT REAL STRING STRING[2x] TIME DATE TOD DT
n 1 - 65535 n 1 65535 n 1 65535 n 1 65535 n 1 65535 n 1 65535 n 1 65535 b 1 - 16 n 1 - 65535 n 1 - 65535 n 1 - 65535 n 1 65535 x 1 - 127 n 1 65535 n 1 65535 n 1 65535 n 1 65535
CitectSCADA arrays are limited to no more than 256 bytes of data, ie 32 bit types 16 bit types 8 bit types 1 bit types have a maximum of 64 elements, have a maximum of 128 elements, have a maximum of 256 elements, have a maximum of 2048 elements
24