Beruflich Dokumente
Kultur Dokumente
DISCLAIMER
Citect Corporation makes no representations or warranties with respect to this manual and, to the maximum extent permitted by law, expressly limits
its liability for breach of any warranty that may be implied to the replacement of this manual with another. Further, Citect Corporation reserves the right
to revise this publication at any time without incurring an obligation to notify any person of the revision.
COPYRIGHT
Copyright 2004 Citect Corporation. All rights reserved.
TRADEMARKS
Citect Pty. Limited has made every effort to supply trademark information about company names, products and services mentioned in this manual.
Trademarks shown below were derived from various sources.
Citect, CitectHMI, and CitectSCADA are registered trademarks of Citect Corporation.
IBM, IBM PC and IBM PC AT are registered trademarks of International Business Machines Corporation.
MS-DOS, Windows, Windows 95, Windows NT, Windows 98, Windows 2000, Windows for Workgroups, LAN Manager, Microsoft Windows XP, Excel
and MSMAIL are trademarks of Microsoft Corporation.
DigiBoard, PC/Xi and Com/Xi are trademarks of DigiBoard.
Novell, Netware and Netware Lite are registered trademarks of Novell Inc.
dBASE is a trademark of Borland Inc.
GENERAL NOTICE
Some product names used in this manual are used for identification purposes only and may be trademarks of their respective companies.
July 2004 edition for CitectSCADA Version 6.0
Manual Revision Version 6.0.
Printed in Australia.
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Installing the ABCLX driver pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Preparing the ControlLogix system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Setting up communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Creating a test project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Setting up an Exclusive Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Configuring your project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Adding devices to your CitectSCADA project . . . . . . . . . . . . . . . . . . . . . . . . . 6
Adding tags to your CitectSCADA project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Individual tag addressing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Array tag addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Addressing program tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Configuring Quality and Timestamp tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Advanced configuration and maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Customizing a project using Citect.ini parameters . . . . . . . . . . . . . . . . . . . . 20
Using a route path to locate a remote CPU. . . . . . . . . . . . . . . . . . . . . . . . . . 25
Configuring Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Performance tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Session Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Status tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Mode detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Identifying bad tags using FailOnBadData . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Scan rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Hardware Alarms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
The SysLog.DAT file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Driver Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Citect Kernel diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Maintaining the project database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Tag-based driver considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
iv
Contents
ABCLX driver
Introduction
CitecthasdevelopedtheABCLXdrivertoenableEthernetbased
communicationbetweenCitectSCADAandControlLogixsystemcontrollers.
ThisHelpfileprovidestheinformationrequiredtosetupandconfigure
communicationwithaControlLogixsystem.Thisinvolvesafourstepprocess.
1
InstallingtheABCLXdriverpack
PreparingtheControlLogixsystem
Settingupcommunications
Configuringyourproject
ThereisalsoadditionalinformationonAdvancedconfigurationand
maintenanceissuesandaTroubleshootingsectiontohelpresolve
communicationorconfigurationerrors.
About ABCLX
CitectSCADAconnectstotheControlLogixsystemPLCsusingEthernet/IPwith
theABCLXdriver.ItcanbeinstalledinparallelwithafunctionalControlLogix
system,allowingengineeringandtestingtobeconductedwithoutanyimpact
onoperation.
Noadditionalhardware(otherthananEthernetmodule)isrequiredforthe
ControlLogixsystem.ThisallowsyoutoreplaceControlViewoperatorstations
onastepbystepbasis.
Note:Priortoversion3,theABCLXdriver(thenknownastheABLogixdriver)
wasinstalledasaTCP/IPboarddriver.Sinceversion3,thedriverhasbeen
installedasanABCLXtypeboarddriver.
Ifyouareupgradinganexistingprojectwhichusedaversion2.xABLogix
driver,youwillneedtoaltertheboardtypeinyourexistingprojecttoABCLX
type.Additionally,theformatusedfortheportdefinitionintheSpecialOptions
fieldoftheCitectSCADAPortsFormhaschanged.SeeABCLXrecommended
settings.
Warning!TheABCLXisatagbaseddriver,whichmeansyouneedtobeaware
ofthewayOIDs(objectidentifiers)areimplementedtoavoidpotential
mismatchesoccurring.Thisisaparticularconcernwithnetworkdistributed
systemswhenattemptingactivitiessuchaseditingvariabledatabasesor
restoringaprojectonadifferentcomputer.Itishighlyrecommendedthatyou
ABCLX driver
reviewthetopicTagbaseddriverconsiderationstoensureyouareawareof
anypotentialproblems.
SavetheABCLXDriverPacktoanappropriatelocationontheI/OServer
PC.
DoubleclicktheEXEfiletolaunchtheinstallation.
FollowtheinstructionsprovidedbytheinstallationWizard.
Note:YouwillbepromptedtoselecttheCitectSCADAinstallationfolder.
Bydefault,thisisC:\ProgramFiles\Citect\CitectSCADA.Ifyouinstalled
CitectSCADAinadifferentfolder,youshouldbrowsetotheappropriate
location.Anerrormessagewillwarnyouifyouselectthewrongfolder.
ClickFinishtocompletetheinstallation.
Hardwarerequirements
Softwarerequirements
Hardware requirements
Typically,theControlLogixCPUmoduleyouwanttoconnecttowillbe
mountedonthesamePLCbackplaneasEthernetmoduleyourI/OServer
communicateswith.Ifthisisnotthecase,youwillhavetosetuparoutepathto
indicatethelocationoftheCPUyouwanttouse.
See Also
UsingaroutepathtolocatearemoteCPU
ABCLX driver
Software requirements
YouwillneedtohaveaccesstoRockwellsRSLogix5000EnterpriseSeries
controllerconfigurationsoftware(obtainablefromyourControlLogixsystem
supplier)anditsassociatedtools.Thissoftwareprovidesaccesstocontroller
configuration,projectcode,tagdefinitionsanddatavalues.Useitto:
1
ConfigureeachEthernetModuleIPaddress
Createtagsforeachcontroller
Downloadtheprojectstothecontrollers.
Hint:WhenitcomestimetoconfigureCitectSCADAtocommunicatewith
ControlLogixsystemPLCs,youcanuseRSLogix5000toexportPLCtag
definitionstocommaseparatedvalue(CSV)files,anduseWindowsClipboard
tocopythemdirectlyintotheCitectProjectEditor.
Note:CitectSCADAtagscanonlysupportarraysof256bytes.Ifyour
ControlLogixsystemhasarraysthataregreaterthanthislimitation,youmay
havetobreakthemupintosegmentsusingtheoffsetandarraysizeinthetag
address.SeeMappingtomorethananindividualelementofanarrayfor
moreinformation.
Setting up communications
BeforeconfiguringyourCitectSCADAproject,itisrecommendedthatyoufirst
establishandconfirmcommunicationbetweenCitectSCADAandthedevicesin
yourControlLogixsystem.Thisallowsyoutotestthecommunicationpathin
isolation,andensuresthatCitectSCADAcanbringyourdevicesonline.
ThebestwaytoachievethisisbyCreatingatestproject.Ifyouwantto
communicatewiththeaLogix5000PLCusinganexclusiveserialconnection,
seeSettingupanExclusiveConnection.
Note:TheABCLXwillnotperformonaveryslownetwork,oranetworkthat
hasaninconsistentconnectiontoanI/Odeviceinthefield(forexample,a
wirelessordialupconnection).Thisisduetothefactthedriverdownloadsall
thetagsfromthePLCandsubscribesthembeforeitcomesonline.Attemptingto
dothisoveraslownetworkcantakealongtimeandwillcausethedriverto
timeoutonstartup.
CitectSCADAwillnotcommunicatewithanI/Odeviceifthereisnoreasonto
readorwritedata.Therefore,youwillneedtodefineandimplementsome
variabletagswithinaCitectSCADAprojecttoinitiateareadrequestandverify
thatthecommunicationchannelisfunctioningcorrectly.Thisrequiresthe
creationofatestproject.
Themaingoalwithatestprojectistokeepthingsassimpleaspossible,sothat
anycommunicationerrorscanbeeasilyidentified.Forexample,yourtest
ABCLX driver
projectcoulddonothingmorethanuseanintegervariabletodisplayanumber
onagraphicspage.
Onceyouhaveusedyourtestprojecttoconfirmcommunications,itcanbeset
asideforfurthertestingatalaterdate.
Note:YoushouldbuildyourtestprojectontheCitectSCADAI/Oserverthat
willconnecttotheControlLogixsystem.
Tocreateacommunicationstestproject:
1
InCitectExplorer,createanewprojectandgiveitanappropriatename.
Addthedeviceyouwouldliketocommunicatewithtotheproject.
Typically,theinformationrequiredaboutadevicecanbegatheredby
runningtheExpressCommunicationsWizard,whichimplementsasetof
recommendedsettingsforthetypeofdeviceyouselect.
TolaunchtheWizard,gototheCitectProjectEditorandselectExpress
WizardfromtheCommunicationsmenu.
ProgressthroughtheWizard,acceptingalldefaultsforanI/Oserverandan
I/Odevice.ThiswillcreateanI/OservernamedIOServer,andanI/O
DevicenamedIODev.
Note:Ifyourequireadditionalinformationaboutaparticularstep,usethe
Helpbutton.
WhenyoureachtheI/ODeviceSelectionpage,locatethedeviceyouwould
liketocommunicatewith;forexample,AllenBradley|Controllogix5550|
Ethernet(TCP/IP).
ContinuethroughtheWizard,untilyourreachthelastpage.ClickFinishto
implementtheWizardssettings.
RuntheComputerSetupWizard,acceptingthedefaultstomakethe
computerastandaloneCitectSCADAsystemconfiguredtorunyourtest
project.
GototheCitectProjectEditorandopenthePortsformfromthe
Comunicationsmenu.IntheSpecialOptionsfield,typeintheIPaddressof
theEthernetmoduleontheControlLogixPLC,appendedwithaforward
slash/andtheslotnumber(zerobased)ofthebackplancecontainingthe
controllerCPUmodule.Theformatshouldbe:
x.x.x.x/n
forexample:
192.168.0.1/1
IftheCPUisonslotzeroofthebackplane,youdonotneedtoinclude/0.
ABCLX driver
8
See Also
Setting up an Exclusive
Connection
Compiletheprojecttoconfirmthattherearenoerrors.Ifyoureceiveany
errormessages,gobackovertheproceduretoconfirmyoursettings.Seethe
Troubleshootingsectiontohelpresolveanypersistenterrors.
SettingupanExclusiveConnection
CitectSCADAisabletocommunicatewiththeserialportonaLogix5000series
processorviathe1761NET_ENImodule.Thisisreferredtoasanexclusive
connection.
Aswithanymethodofcommunicationtoadevice,youshouldcreateatest
projectforanexclusiveconnectionsothatanycommunicationerrorscanbe
easilyidentified.
Tosetupaserialcommunicationstestproject:
1
Configurethe1761NET_ENImodule.RefertoMicroLogixEthernetInter
face(Cat.No.1761NETENI)UserManualfordetailsonhowtoconfigure
themodule.
InCitectExplorer,createanewprojectandgiveitanappropriatename.
Addthedeviceyouwouldliketocommunicatewithtotheproject.
Typically,theinformationrequiredaboutadevicecanbegatheredby
runningtheExpressCommunicationsWizard,whichimplementsasetof
recommendedsettingsforthetypeofdeviceyouselect.
TolaunchtheWizard,gototheCitectProjectEditorandselectExpress
WizardfromtheCommunicationsmenu.
ProgressthroughtheWizard,acceptingalldefaultsforanI/Oserverandan
I/Odevice.ThiswillcreateanI/OservernamedIOServer,andanI/O
DevicenamedIODev.
Note:Ifyourequireadditionalinformationaboutaparticularstep,usethe
Helpbutton.
WhenyoureachtheI/ODeviceSelectionpage,locatethedeviceyouwould
liketocommunicatewith;forexample,AllenBradley|Controllogix5550|
Ethernet(TCP/IP).
ContinuethroughtheWizard,untilyourreachthelastpage.ClickFinishto
implementtheWizardssettings.
OpenthePortsFormfromtheCommunicationsmenuinCitectEditor.Type
intheIPaddressof1761NET_ENImoduleinSpecialOptfield.
SetupExclusiveConnection=1andRoutePathinCitect.ini:
[ABCLX]
ExclusiveConnection=1
IOServerName.IOPortName.RoutePath=/P:3/A:1
ABCLX driver
where:
/P:3indicatesthecommunicationgoesthroughtheserialport(PortB)on
1761NETENImodule.
/A:1indicatesthemodulesuniqueaddressofserialportoncpuis1.
9
RuntheComputerSetupWizard,acceptingthedefaultstomakethe
computerastandaloneCitectSCADAsystemconfiguredtorunyourtest
project.
10 Compiletheprojecttoconfirmthattherearenoerrors.Ifyoureceiveany
errormessages,gobackovertheproceduretoconfirmyoursettings.Seethe
Troubleshootingsectiontohelpresolveanypersistenterrors.
AddingdevicestoyourCitectSCADAproject,
AddingtagstoyourCitectSCADAproject,
ConsiderationoftheDatatypesused,
TheuseofIndividualtagaddressingand/orArraytagaddressing,
ConfiguringQualityandTimestamptags.
AddingadevicetoyourCitectSCADAprojectprovidesinformationaboutthe
deviceslocation,itscommunicationmethod,theportitisconnectedto,andso
on.ThisinformationisstoredintheCitectSCADAprojectdatabase.
ABCLX driver
Therearetwomethodsavailableforaddingadevice:
AddingadeviceusingtheExpressCommunicationsWizard
Manuallyconfiguringadeviceconnection
Inmostcases,completingtheExpressCommunicationsWizardissufficientto
setupyourcommunications,asthesettingsitimplementsforeachdevicehave
beenpreconfiguredforpreferredoperation.If,however,yourdevice
connectionneedsarecomplex,youcanreconfigurecommunicationsby
manuallyconfiguringtheCitectSCADAcommunicationforms.
Adding a device using the Express Communications Wizard
1
TolaunchtheWizard,gototheCitectProjectEditorandselectExpress
WizardfromtheCommunicationsmenu.
ProgressthroughtheWizard,fillingintheappropriateinformationfortheI/
OserverandI/Odevice.
Note:Ifyourequireadditionalinformationaboutaparticularstep,usethe
Helpbutton.
WhenyoureachtheI/ODeviceSelectionpage,locatethedeviceyouwould
liketocommunicatewith;forexample,AllenBradley|Controllogix5550|
Ethernet(TCP/IP).
ContinuethroughtheWizard,untilyourreachthelastpage.ClickFinishto
implementtheWizardssettings.
DefineanI/OserverusingtheI/OServerform.ThissetsthenameoftheCit
ectSCADAserverthattheI/Odevicewillcommunicatewith.
CompletetheBoardsform.Thisformdefineswhichboard(onyour
CitectSCADAcomputer)touseforcommunication,suchasthemother
board,networkcard,serialboardoraPLCcommunicationcard.
CompletethePortsform.Oftenboardshavemultiplecommunicationports,
andyoumustspecifytheporttouse.Somemodernequipmentcanhavea
numberoflogical(virtual)portsassignedtotheonephysicalport.
ABCLX driver
4
CompletetheI/ODevicesform.ThisiswhereyoudefinewhichI/Odevice
CitectSCADAistalkingto,byspecifyingtheaddress.Theprotocolisalso
definedatthislevel.
RuntheComputerSetupWizardtocompletetheconfiguration.Thisallows
youtodefineyourCitectSCADAcomputerastheI/Oserverdefinedabove.
Thisisusuallydoneaftercompilationoftheproject.
Value
Board Name
Board Type
Address
I/O Port
Interrupt
Special Options
Comment
Note:Priortoversion3,theABCLXdriver(thenknownastheABLogixdriver)
wasinstalledasaTCP/IPboarddriver.Sinceversion3,thedriverhasbeen
installedasanABCLXtypeboarddriver.Ifyouareupgradinganexisting
projectwhichusedaversion2.xABLogixdriver,youwillneedtoaltertheboard
typeinyourexistingprojecttoABCLXtype.
Ports Form ThePortsformlistsallportsusedintheCitectSCADAproject.Each
portrecorddefinesaseparateportwithintheproject.
Field
Value
Port Name
Port Number
Board Name
Baud Rate
ABCLX driver
Field
Value
Data Bits
Stop Bits
Parity
Special Options
Comment
Note:WiththereleaseofVersion3oftheABCLXdriver(formerlyknownasthe
ABLogixdriver),theformatusedfortheportdefinitionintheSpecialOptions
fieldofthePortsFormhaschanged.IfyouareupgradingfromVersion2.x
(ABLogix),youwillhavetoadjustthecontentofthisfield.
Devices form
Field
Value
Name
A unique name (up to 16 alphanumeric character) for the I/O Device being
identified. Each I/O Device must have a unique name in the CitectSCADA
system.
A unique number for the I/O Device (016383). Each I/O Device must have a
unique number in the CitectSCADA system, (unless redundancy of the I/O
Device is being usedSee Device Note 1).
Leave this field blank.
Note: See Session Control for additional configuration information if you
are using the Session Disable feature.
This field must be "ABCLX". Default is "ABCLX" when the CitectSCADA
Express I/O Device Wizard is used to complete these forms.
This field must contain one of the names previously defined in the Port
Names field of the Ports form. There must be only one I/O device per port.
Any useful comment. This is viewed in the Devices records database in
CitectSCADA Project Editor.
Number
Address
Protocol
Port Name
Comment
AseparatevariabletagmustbeaddedtoyourCitectSCADAprojectforeach
datapoint(memoryregister)ontheI/Odevicesyouwanttocommunicatewith.
ControlLogixsystemPLCcontrollersuseatagbasedaddressingsystem.The
tagsassociatedwithacontrollerareeachassignedauniquenameusingthe
RSLogix5000EnterpriseSeriescontrollerconfigurationsoftware.SeePreparing
theControlLogixsystem.
YouusetheControlLogixsystemPLCtagnamewhenyouspecifytheaddress
forataginyourCitectSCADAproject.However,anysquarebraces[]should
10
ABCLX driver
bereplacedwith{},andforwardslashes/shouldbeusedtoaccessbits
withinwords,ratherthanaperiod..
Note:TheABCLXdriversupportsIndividualtagaddressingandArraytag
addressing.Programtagsupportisalsoavailableforboththesetypesof
addressing.Localtagadressingisonlysupportedviaaliasingthroughthe
RSLogix5000software.
YourCitectSCADAvariabletagsaredefinedusingtheVariableTagsform:
ForCitectSCADAtocompilecorrectly,youmustincludeappropriatevaluesfor
thefollowingfields:.
Field
Value
A unique name per project for the variable tag (up to 79 alphanumeric
characters in Version 6, 32 characters for earlier versions). This can be used
by CitectSCADA graphic pages and in Cicode where defined.
The type of variable. Select from the drop-down menu. It must be one of the
predefined types used in CitectSCADA.
The name of an I/O Device defined in the I/O Devices form which is used to
identify the ControlLogix PLC controller (CPU module).
The name of a predefined ControlLogix system PLC tag, either individually
addressed, array addressed or addressed as part of a program.
Data Type
I/O Device Name
Address
Note:CitectSCADAdoesnotindicateanycompileerrorsifaninvalidaddressis
enteredintheVariableTagform.Anyvariabletagvalueswithaninvalid
addresswilldisplayas#COMatruntimeonthegraphicpageswherethey
havebeenpositioned.
Data types
WhenconfiguringyourvariabletagstocommunicatewiththeControlLogix
system,youmustselectaCitectSCADAdatatypethatiscompatiblewiththe
datatypeusedbytheControlLogixsystemcontroller.
ABCLX driver
Ideally,youshouldmatchthedatatypeoftheCitectSCADAvariabletagwith
thedatatypeofthemappedControlLogixsystemPLCtagasperthefollowing
table:
ControlLogix Data
Description
Access rights
BOOL
SINT
INT
DINT
REAL
STRING
<TagName>
<TagName>
<TagName>
<TagName>
<TagName>
<TagName>
R/W
R/W
R/W
R/W
R/W
R/W
DIGITAL
BYTE
INTEGER
LONG
REAL
STRING
Forexample,iftheControlLogixtagyouareaddressingusesafloatdatatype,
youshouldselectrealintheDataTypefieldoftheVariableTagsform.
Note:CitectSCADAreadsastringdatatypefromtheControlLogixPLCasa
nullterminatedstring.Therefore,ifyouneedtoreada12characterstring,you
willhavetoconfigurethestringlengthonthePLCtoatleast13charactersto
allowforthenullcharacter.
Data Coercion
TheABCLXdriveralsosupportsanumberofdataconversionsfromaCitect
datatypetoanativePLCdatatype.However,asitispossibletocoercefroma
largedatatypetoasmalleroneinbothdirections,caremustbetakentoensure
thattherangeofthesmallertypeisalwaysrespected,otherwisethedriverwill
returnBAD_DATA_TYPEbacktoCitect.Itisrecommendedyouonlyrelyon
theseconversionswherecircumstancesdemandit.
11
12
ABCLX driver
Thefollowingmatrixtabledetailstheconversionssupportedbythedriver.The
plussign(+)representsthoseconversionsthatareimpactedbyrange
differences.
Individual tag
addressing
WhendeclaringaCitectSCADAvariabletagusingindividualtagaddressing,
typeintheControlLogixtagname,asdefinedontheControlLogixPLC,intothe
AddressfieldoftheVariableTagform.
Examples
SingleBytewithinastructure
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
SingleStructure.SingleByte
SINT
SingleStructure_SingleByte
SingleStructure.SingleByte
BYTE
SingleDigital
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
SingleBoolean
BOOLEAN
SingleBoolean
SingleBoolean
DIGITAL
ABCLX driver
Single82ndbitfromadigitalarray
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
DigitalArray
BOOL[128]
SingleDigital_81
SingleDigital{81}
DIGITAL
Single7thbitfromfourthiteminalongarray
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
LongArray
DINT[256]
SingleBit_3_7
LongArray{3}/7
DIGITAL
Arraytagaddressing
Addressingprogramtags
ArrayscanexistintheControlLogixsystemPLCand/ortheCitectSCADAtag
database.
WithintheControlLogixsystemPLC,theyaredefinedusingtheRSLogix5000
EnterpriseSeriesconfigurationsoftware.SeePreparingtheControlLogix
system.
CitectSCADAaccessesthetagarrayswithintheControlLogixsystemPLCsvia
theAddressfieldoftheVariableTagsformforeachtagortagarray.Equally,the
waytodefineCitectSCADAtagarraysisalsotousetheAddressfieldofthe
CitectSCADAVariableTagsformforeachtagarrayrequiredinCitectSCADA.
Note:CitectSCADAtagarraysaresimple,notcomplex,arrays.Thismeansthey
canonlycontainelementsofthesamedatatype;forexample,adigitaltagarray
inCitectSCADAwillonlyincludedigitaltypevariables.
Tagarrayscanbeextremelyflexibleandquitecomplicated.Itispossibleto
declareatagarrayinCitectSCADAwhichmapstoatagarrayinaControlLogix
systemPLC,orwhichmapstoacontiguoussequenceoftags(ofthesamedata
type)whichmayormaynotbedefinedasatagarrayintheControlLogix
systemPLC.
13
14
ABCLX driver
Mapping to individual elements of an array
TomaptoanindividualtaginaControlLogixPLCtagarray,use{}bracesto
definethearrayelementasazerobasedindex.Usethefollowingsyntax:
<TagName>{<IndexNumber>}
Where:
<TagName> =
{}=
<IndexNumber> =
Note:WithversionsofCitectSCADApriortoversion6,curlybrackets{}were
requiredwhenaddressingarrays.Thisisnolongerthecase,asVersion6
supportstheuseofbothcurlybracketsandsquarebrackets[].
Individual tag address type mapping
YoushouldmatchthedatatypeoftheCitectSCADAvariabletagwiththedata
typeofthemappedControlLogixsystemPLCtagasperthefollowingtable:
ControlLogix Data
Description
BOOL
SINT
INT
DINT
REAL
String structure (see
Note below) or
STRING (supplied by
RSLinx)
Access rights
<TagName>{<IndexNumber>}
<TagName>{<IndexNumber>}
<TagName>{<IndexNumber>}
<TagName>{<IndexNumber>}
<TagName>{<IndexNumber>}
<TagName>{<IndexNumber>}
R/W
R/W
R/W
R/W
R/W
R/W
DIGITAL
BYTE
INTEGER
LONG
REAL
STRING
Note:Thestringstructuremustfollowtheformat:
{
DINTLEN
SINT[]DATA
}
Example
Singleintegerwithinanarrayofintegers
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
IntegerArray[5]
INT
IntegerArray_5
IntegerArray{5}
INTEGER
ABCLX driver
Singlefloatwithinanarrayofstructures
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
StructureArray[5].SingleFloat
FLOAT
StructureArray_5_SingleFloat
StructureArray{5}.SingleFloat
REAL
Where:
<TagName> =
/<ArrayOffset> =
!A<ArraySize> =
Note:ThearrayoffsetvalueisazerobaseditemcountusedwithinthePLCto
definethestartofthearraystructurewhichisbeingmappedtothe
CitectSCADAvariabletagarraybeingdeclared.Thearraysizevalueisa
continuationofthesamecountandisusedtodefinethesizeofthearray
structurebeingmappedtotheCitectSCADAvariabletagarraybeingdeclared.
Theyareusedtogethertodeterminethestartandendpointsofthevariabletag
arraydataintheControlLogixsystemPLCwhichwillbemappedtoforthe
CitectSCADAvariabletagarraybeingdeclaredintheCitectSCADAVariable
Tagsform.
CitectSCADAignoresallcharactersfollowinganexclamationmark!inthetag
addressfield,sothattagbaseddriversliketheABCLXdrivercanusesquare
bracketsinthetagaddressfordevicearrayaddressing.Therefore,youmust
precedeanarrayaddressschemawithanexclamationmarkwhendefiningan
arrayinaCitectSCADAvariabletagaddress.
15
16
ABCLX driver
Mapping data types for array tag addressing
YoushouldmatchthedatatypeoftheCitectSCADAvariabletagarraywiththe
mappedControlLogixPLCtagarrayasperthefollowingtable:
Examples
ControlLogix Data
Description
Access
rights
Array of BOOL
Array of SINT
Array of INT
Array of DINT
Array of REAL
<TagName>/<ArrayOffset>!A[<ArraySize>]
<TagName>/<ArrayOffset>!A[<ArraySize>]
<TagName>/<ArrayOffset>!A[<ArraySize>]
<TagName>/<ArrayOffset>!A[<ArraySize>]
<TagName>/<ArrayOffset>!A[<ArraySize>]
R/W
R/W
R/W
R/W
R/W
DIGITAL array
BYTE array
INTEGER array
LONG array
REAL array
Configurationofanarrayof128integers
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
IntegerArray
INT[128]
IntegerArray_128
IntegerArray!A[128]
INT
Configurationofanarrayof64floatsoffsetby32items
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
LargeFloatArray
FLOAT[256]
LargeFloatArray_32_64
LargeFloatArray/32!A[64]
FLOAT
Configurationofanarrayofdigitalswithinastructure
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
SingleStructure.BooleanArray
BOOLEAN[2048]
SingleStructureBooleanArray
SingleStructure.BooleanArray!A[2048]
DIGITAL
Configurationofanarrayof256bytes,offsetby256itemswithinanarrayof
structuresatelement32
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
See Also
StructureArray.LargeByteArray
SINT[1024]
StructureArray_32_LargeByteArray_256_256
StructureArray{32}.LargeByteArray/256!A[256]
BYTE
Addressingprogramtags
ABCLX driver
Addressing program
tags
ControlLogixprogramtagscontaindatathatisusedexclusivelybytheroutines
withinanindividualprogram.Thesetagscanbeviewedaslocalvariables.
Individualtagaddressingandarraytagaddressingareavailableforprogram
tagsbyusingPROGRAM:<TaskName>asaprefix.
Examples
SingleBytewithinastructureinprogramMyProgram.
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
MyProgram.SingleStructure.SingleByte
SINT
MyProgram_SingleStructure_SingleByte
PROGRAM:MyProgram.SingleStructure.SingleByte
BYTE
SingleDigitalinprogramMyProgram
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
MyProgram.SingleBoolean
BOOLEAN
MyProgram_SingleBoolean
PROGRAM:MyProgram.SingleBoolean
DIGITAL
SingleintegerwithinanarrayofintegersinprogramMyProgram
PLC Tag Address
PLC Tag Type
Citect Tag Name
Citect Tag Address
Citect Tag Type
MyProgram.IntegerArray[5]
INT
MyProgram_IntegerArray_5
PROGRAM:MyProgram.IntegerArray{5}
INTEGER
TheCitectSCADAABCLXdrivercanuseadditionalvariabletagsforqualityand
timestampvalues.Qualityortimestamptagsareduplicatesofavariabletag,
withanappended!Qor!Tor!Mintheaddressfieldtodefinetheir
purpose.TheirdatatypeneedstobeLongtoenablethemtostoreaqualityor
timestampvalue.
Hint:ThequickestwaytocreateaQualityorTimestamptaginCitectSCADAis
tolocatetherelevantvariabletagusingtheVariableTagsform,edititas
requiredtocreateaqualityortimestamptag,andsaveit.Thiscreatesacopyof
theoriginalvariabletagwiththerequiredchangessaved.
TocreateaQualitytag:
1
OpentheVariableTagsforminProjectEditor(gototheTagsmenuand
selectVariableTags).
Createanewvariabletag,orlocateanddisplaythetagthatyouwantto
associatethequalitytagwith.
17
18
ABCLX driver
3
IntheVariableTagNamefield,enteranappropriateanduniquenamefor
thequalitytag.Commonpracticesuggestsusinganamesuchas
<Tagname>_Quality.
IntheDataTypefield,selectLongfromthedropdownmenu(ifnotalready
selected).
IntheI/ODeviceNamefield,selecttheappropriateI/ODeviceforthetag
(ifnotalreadydisplayed).
IntheAddressfield,enterthenameofthetagyouwanttoassociatewiththe
qualityvalue(ifnotalreadydisplayed),andappend!Qdirectlytotheend
oftheaddress(withoutthequotesandwithoutanyspaces).
ClickAdd.
Note:Iftheexclamationmarkcharacter!isalreadydefinedinthetagaddress
field(forexample,youhavealreadyusedittodeclareanarraysize!A[n]),
dontincludeanotherexclamationmark;instead,justappendtheQtothetag
addressaftertheclosingsquarebracketofthearraysizedeclaration.
ThequalityvaluegeneratedbytheABCLXdriverisamaskofthequalitylevel
andqualitystatusfieldvaluesasperthefollowingtable:
Quality level
Quality status
Value (Hex)
QLEVEL_UNCERTAIN
QLEVEL_GOOD
QLEVEL_BAD
N/A
N/A
N/A
QSTATUS_NONE
QSTATUS _NOTDEFINED
QSTATUS _INITIAL
QSTATUS _STALE
QSTATUS _ERRORDATA
QSTATUS_WRITE
0x00
0x01
0x02
0x03
0x04
0x05
Hint:Thequalityiscalculatedbyshiftingupthequalitylevelby8bitsandOR
maskinginthequalitystatus.
Examples
QualitytagsettingsforasinglelonginrootofPLC:
Citect Tag Name
Citect Tag Address
Citect Tag Type
SingleLong_Quality
SingleLong!Q
LONG
Qualitytagsettingsforanarrayof256bytes,offsetby256itemswithinanarray
ofstructuresatelement32:
Citect Tag Name
Citect Tag Address
Citect Tag Type
StructureArray_32_.LargeByteArray_256_256_Quality
StructureArray{32}.LargeByteArray/256!A[256]Q
LONG
ABCLX driver
TocreateaTimestamptag:
1
OpentheVariableTagsforminProjectEditor(gototheTagsmenuand
selectVariableTags).
Createanewvariabletag,orlocateanddisplaythetagthatyouwantto
associatethetimestamptagwith.
IntheVariableTagNamefield,enteranappropriateanduniquenamefor
thetimestamptag.Commonpracticesuggestsusinganamesuchas
<Tagname>_sTimestamp(forseconds)or<Tagname>_msTimestamp(for
milliseconds).
IntheDataTypefield,selectLongfromthedropdownmenu(ifnotalready
selected).
IntheI/ODeviceNamefield,selecttheappropriateI/Odeviceforthetag(if
notalreadydisplayed).
IntheAddressfield,enterthenameofthetagyouwanttoassociatewitha
timestampvalue(ifnotalreadydisplayed),andappend!Tor!M(as
appropriate).
Note:Ifthereisalreadyanexclamationmarkwithotherdeclarations
includedinthetagaddress,youdonotneedtoincludethemfor
timestamping.Forexample,atimestamptagmonitoringTagName!A[64]
canbeaddressedasTagName!T.
ClickAdd.
Note:Timestampsstorethenumberofsecondssince01/01/1970whenusingthe
!Telement,orthenumberofmillisecondssincemidnightusingthe!M
element.Ifyouwanttostoreacompletetimeinmillisecondaccuracy,youmust
createtwoseparatetimestamptags,oneforsecondsandoneformilliseconds,
eachaddressedappropriately.
Examples
TimestamptagsettingsforasinglelonginrootofPLC:
Citect Tag Name
Citect Tag Address
Citect Tag Type
SingleLong_msTimestamp
SingleLong!M
LONG
Timestampsettingforanarrayof256Bytesoffsetby256itemswithinanarray
ofstructuresatelement32:
Citect Tag Name
Citect Tag Address
Citect Tag Type
StructureArray_32_.LargeByteArray_256_256_sTimestamp
StructureArray{32}.LargeByteArray/256!T
LONG
Note:Atimestampvalueisbasedonthetimeavaluechangeisdetectedbythe
ABCLXdriverinUTCtime,sothetimestampisonlyasaccurateasthepolling
19
20
ABCLX driver
cycleoftheI/Odevice.If,forexample,thedatavaluechangedwhiletheunit
wasnotpolling,thetimestampvaluewillnotbeaccurate.
Customizing a project
using Citect.ini
parameters
CustomizingaprojectusingCitect.iniparameters
ConfiguringRedundancy
UsingaroutepathtolocatearemoteCPU
Performancetuning
SessionControl
Modedetection
Statustags
IdentifyingbadtagsusingFailOnBadData
Scanrates
Citect.INIparametersareusedtotunetheperformanceoftheCitectSCADA
ABCLXdriverandperformruntimemaintenancediagnostics.
YoucancustomizethewayCitectSCADAcommunicateswiththeControlLogix
system,andevenindividualPLCs,bycreatingoreditingthe[ABCLX]sectionof
theCitect.INIfileforyourproject.
TherearesomecommonCitectSCADAdriversettings,andcustom
CitectSCADAABCLXdriversettings.
WhenCitectSCADAstartsatruntime,itreadsconfigurationvaluesfromthe
Citect.INIfilestoredlocally.Therefore,anyControlLogixconfigurationsettings
mustbeincludedintheCitect.INIfilelocatedonthecomputeractingastheI/O
servertotheControlLogixsystem.
Note:Bydefault,CitectSCADAlooksfortheINIfileintheCitectSCADAproject
\Bindirectory.Ifitcantfinditthere,itwillsearchthedefaultWindows
directory.
Warning!Thedefaultvaluesfortheseparametershavebeendetermined(during
driverdevelopmentandtesting)tobethebestvaluefortheCitectSCADA
ABCLXdriver.Alloftheseparametersdefaulttoavaluetestedtoworkinmost
cases.Youshouldcarefullyconsideradjustingthesedefaultvaluesexceptonthe
directadviceofCitectCustomerSupport.
ABCLX driver
Global and device-specific parameters
Parametersgroupedbeneaththe[ABCLX]generalcategoryareglobaland
impactallControlLogixsystemPLCs.Youcan,however,overrideaglobal
parameterwithadevicespecificparameter.
DevicespecificparametersdefinethesettingsforaparticularControlLogix
systemPLC.ThesyntaxfordefiningadevicespecificABCLXdriverparameter
is:
[<IOServerName>.<IOPortName>]
Where:
<IOServerName> =
<IOPortName> =
WiththecurrentreleaseoftheABCLXdriver,therearedevicespecific
parametersyoucanusetooverrideglobalparameters;theyare:
ExclusiveConnection
FailOnBadData
ForwardOpenPoolSize
InactiveScanAdjust
LogTagInfo
LogTagInfoPath
MissedPollTolerance
StatusTag
ScanRate
Formoredetails,seeDriverspecificCitect.INIparameters
Examples
Implementationofglobalparameters:
[ABCLX]
Watchtime=5
ScanRate=1000
Implementationofadevicespecificparameter:
[CLServer.CLServerPort]
ScanRate=500
21
22
ABCLX driver
Common Citect.INI driver parameters
[ABCLX]
Parameter
Allowable
Values
Default
Value
Block
1 to 256
256
Delay
0 to 1000
MaxPending
1 to 256
256
Polltime
20 to 200
50
Retry
0 to 5
Timeout
100 to 30000
5000
Watchtime
5 to 30
30
Description
[ABCLX] Parameter
ConnTimeout
Allowable
Values
5000 to 30000
(milliseconds)
ABCLX driver
[ABCLX] Parameter
Allowable
Values
DebugLevel
WARNN
ERROR
TRACE
ALL
DebugCategory
TAG
SOCK
EIP
DCB
BUFF
THRD
ALL
Debug category.
TAG: Tag configuration trace.
SOCK: Socket trace.
EIP: EIP session trace.
DCB: Front end driver trace.
BUFF: Dump a counted buffer to hex.
THRD: Thread trace.
See Logging for examples.
ExclusiveConnection
0 or 1
FailOnBadData
0 or 1
ForwardOpenPoolSize
1 - 32
23
24
ABCLX driver
[ABCLX] Parameter
Allowable
Values
InactiveScanAdjust
0 to 15
10
InitTimeOut
0 to 360000
(milliseconds)
180000
LogSize
100 to 50000
2000
LogTagInfo
0 or 1
ABCLX driver
[ABCLX] Parameter
Allowable
Values
LogTagInfoPath
C:\
MissedPollTolerance
1-5
ScanRate
100 to 30000
milliseconds
500
StatusTag
(comparison
equation)
(no status
tags)
AroutepathallowsyoutoindicatethelocationofaparticularCPUona
ControlLogixnetworkinrelationtotheEthernetmoduleyoureusingasyour
initialpointofcommunication.Itmapsoutacommunicationchannelacrossa
networkofPLCsbydefiningaseriesofportsandaddressesthateventuallylead
tothedestinationCPU.
Thisinformationisconfiguredinthe[ABCLX]sectionoftheCitect.inifile,using
thefollowingsyntax:
[IOserver name].[Port name].RoutePath=/P:m/A:n,...,/P:m/A:n
25
26
ABCLX driver
where:
Example
[IOServer name] =
[Port name] =
m=
n=
the slot number if the module is on the backplane, or the address of the
module, which will either be a CNET address, IP address or DH address. It
can also be an IP address if it is an EIP module
StartingfromtheinitialEthernetmodule,eachpointinthecommunicationpath
isdefinedwithaPortvalueandAddressinthefollowingformat:
/P:m/A:n,
Includeanappropriatenumericvalueformtoindicateifthenext
communicationpointisonthesamebackplane,orconnectedviaaparticular
port.Thevaluefornwillthenbecomeabackplaneslotnumber,oramodules
uniqueaddress.
IfyouareattemptingtoroutefromoneEthernetmoduletoanother,youllhave
touse2(PortA)form,andthedestinationIPaddressforn.Forexample:
/P:2/A:123.234.0.124,
Simplyrecreatethissyntaxforeachpointinthecommunicationpath,separated
bycommas,tocompletetheRoutePathparameter.
Considerthefollowingdiagram,showingaCitectSCADAI/Oserver,anda
networkofthreeControlLogixPLCbackplanes.Notetherearetwoexample
routepathsrepresented,onedistinguishedbyadottedline.
ABCLX driver
The syntax for the first example (solid line) would be:
IOServerName.PortName.RoutePath=/P:1/A:3,/P:2/A:23,/P:1/A:9,/P:2/
A:123.234.0.124,/P:1/A:6
Thesyntaxforthesecondexamplewouldbe:
IOServerName.PortName.RoutePath=/P:1/A:3,/P:2/A:23,/P:1/A:7,/P:2/
A:17,/P:1/A:6
Configuring
Redundancy
RedundancyishandledinCitectSCADAbytheCitectSCADAclients.They
determinewhichI/OservertorequestI/Odevicedatafrom.Thisisdoneby
allowingthescanratetobespecifiedperI/Odevice,andthenconfiguring
multipleI/OdevicestothesamePLC.
TheinactiveunitunderredundancywillreceiveaSTATUS_UNITcommand
fromCitecteveryconfiguredWatchTime.ThereplysentbacktoCitectwillbe
basedonthecurrentstateofthestatustagcondition.Iftheconditionfailsthe
standbyunitwillbesettoUNIT_OFFLINEuntilthestatustagconditionpasses.
Thestatusgrouppollingrateremainsunchangedontheinactiveunit.See
Stop_Unithandling.
27
28
ABCLX driver
AstatustagcanbedefinedintheCitect.inifiletodeterminewhetherornotto
setaunitofflineoronlinedependingontheconditionofthestatustag.Ifthe
conditionistruetheunitisallowedtocomeonline,otherwisetheunitissetto
offline.
Thestatustagispolledatthesamerateconfiguredforthegroupsofthe
correspondingunit.ThedriversupportsSTATUS_UNITcommandsonthe
inactiveserver,soeventhoughaparticularunitisnotcurrentlyservicingCitect
requests,thestateofthestatusconditionwillbecheckedperiodicallyallowing
theunittobetakeneitherofflineoronline.
Boththeprimaryandstandbydeviceswillbeofflineifbothhavethesamestatus
conditionandtheconditionisfailing.Allpointsinthesystemforthatunit
wouldthereforebe#COM.
Thestatustagcanbedefinedeitherinthemain[ABCLX]sectiontoapplytoall
devicesorastatuscanbedefinedspecificallyforaparticulardevicewithinthe
[<IOServerName>.<IOPortName>]section.
TheinactiveunitunderredundancywillreceiveaSTATUS_UNITcommand
fromCitectSCADAeveryconfiguredWatchTime.Thereplysentbackto
CitectSCADAwillbebasedonthecurrentstateofthestatustagcondition.Ifthe
conditionfails,thestandbyunitwillbesettoUNIT_OFFLINEuntilthestatus
tagconditionpasses.Thestatusgrouppollingrateremainsunchangedonthe
inactiveunit.
Stop_Unit handling
IfthedriverreceivesaSTOP_UNITcommandfromtheI/OServerfora
particulardevice,thenthedriverplacestheunitofflineandadjuststhepolling
ratebasedontheinactivescanadjust.WhentheINIT_UNITcommandis
receivedagain,thedriverwillstartpollingagainandplacetheunitbackonline.
Iftheunitiscurrentlyoffline,theSTOP_UNITcommandwillnotbesentdown
tothedriversothedriverwillnotknowtostoppollingthePLC.
Performance tuning
TherearetwowaysyoucanfinetunetheperformanceoftheABCLXdriveron
yourCitectSCADAsystem:
OptimizingdrivertoPLCcommunications
OptimizingCitectSCADAsclienttoservercommunications
ABCLX driver
Tominimizenetworktraffic,theABCLXdriveralsosupportstheuseofdifferent
scanratesfordifferentdevices,andactiveandinactivedevices.SeeStatustags
andScanrates.
Note:TheABCLXdrivermaintainsaninternaltagcacheandservices
CitectSCADADCBrequestsfromtheinternalcache.
YoucanalsoadjusttheSystemOverheadTimeSliceinthePLCtothehighest
valuepossiblewithoutinterferingwiththerunningofoperationsonthePLC.
TheSystemOverheadTimeSliceinthePLCisadjustedfromtheControllogix
programmingsoftwarebyrightclickingonthecontrollerandnavigatingtothe
ControllerPropertiesthenclickontheAdvancedtab.
Itisalsogoodengineeringpracticetoarrangeyourvariable.dbfbyIODevice
thenDataType.ThisallowsCitecttocreaterequestsbyblockingthesamedata
typeswithinanIODevicetogether.
ForfurtherinformationonoptimizingPLCcommunications,seethe
CitectSCADAKnowledgeBasearticleQ4035.(TheKnowledgeBasecanbe
installedfromtheCitectSCADACD,ordownloadedfromwww.citect.com.)
Optimizing CitectSCADAs client to server communications
Duetothisdriverbeingafrontend/backenddriver,therearenotransport
delaysbetweenCitectSCADAandthedriverinvolvedinprocessingaread
requestfromthedrivercache.Thismeansthatunderheavyloads,thedriver
coulduseupmosttheCPUprocessingrequests.ThedrivercantunetheCPU
usageandthroughputtohelpmanagetheresourcesoftheI/Oserver.The
standarddriverparametersMaxPendingandDelaycanbeusedasfollows:
[ABCLX]
MaxPending=x
Delay=y
where:
x=
y=
the maximum number of simultaneous requests the driver will receive from CitectSCADA.
the average delay applied to the requests to control CPU usage.
SeeCustomizingaprojectusingCitect.iniparameters.
Examples
[ABCLX]
MaxPending=256
Delay=50
Theaboveexamplewouldmeanthatthedriveriscapableofservicing256
requestsevery50milliseconds.
[ABCLX]
MaxPending=1
29
30
ABCLX driver
Delay=0
Thisexamplewouldmeanthedriverwouldreplytoeveryrequestasquicklyas
possible,whichcouldcauseCPUissues.
Session Control
Youcanusesessioncontroltoreleaseanycurrentreferencestotagsonthe
ControlLogixPLCs.Thisisrequiredifyouwanttomodifyordeleteanyofyour
PLCtags,astheLogix5000softwarecannotaccessatagifCitectSCADAis
currentlysubscribedtoit.Youcanalsousesessioncontroltoloadarefreshedtag
listfromaPLC.
SessioncontrolisachievedbyusingtheSessionDisable:xtag.Thistagneedsto
beconfiguredonavirtualdeviceonavirtualchannel.Thevirtualchannelis
specifiedbyentering0.0.0.0astheIPaddressintheSpecialOptionsfieldofthe
Portsform.Thereshouldbeasinglevirtualportandvirtualdeviceconfigured
foreachI/Oserver,andthevirtualdevicesshouldnotbeconfiguredfor
redundancy;i.e.,thenetworknumbersforthevirtualunitsshouldnotbethe
same.Otherwiseitisnotpossibletocommunicatewithaspecificvirtualunit
fromaCitectSCADAclient.
Device Data Description
Access rights
SessionDisable: x
R/W
INTEGER
Where:
x=
the address entered for the specified device in the I/O Devices form. It needs to be unique across all
systems.
Ifthistagiswrittentowitha1,thesessionisdisabled.Writinga0tothistagwill
reenablethesession.
Example
ThefollowingexamplewilloperateontheI/ODevicewith123intheaddress
fieldoftheI/ODeviceForm.
ABCLX driver
Firstly,createavirtualchannelbyentering0.0.0.0astheIPaddressinSpecial
OptfieldinPortsForm.
Createavirtualdevice.
31
32
ABCLX driver
Createavirtualtagonthevirtualdevice.
ThiswillallowyoutocontrolthesessiononIODevdevicebywritting0or1to
thevirtualtagCI_Session_Control.
See Also
Status tags
Statustags
AstatustagcanbedefinedintheCitect.INIfiletodeterminewhetherornotto
setalloranyControlLogixsystemPLCdevicesofflineoronlinedependingon
theconditionofthestatustag.Iftheconditionistrue,thedeviceisallowedto
comeonline;otherwisethedeviceissettoofflinebytheABCLXdriver.
Therecanbeonegeneralstatustag(definedinthegeneral[ABCLX]sectionof
theprojectCitect.INIfile)whichdeterminestheonlinestatusofallI/Odevices
usingtheABCLXdriver.TherecanalsobeanindividualstatustagsetforeachI/
Odevice(usingthesyntax[IOServerName.IOPortName])thatwilloverridethe
generalsectionstatustag.SeeCustomizingaprojectusingCitect.ini
parameters.
Bydefault,nostatustagiscreatedforthedriveroradeviceuntildefinedinthe
projectCitect.INIfile.
Thestatustagispolledatthesamerateconfiguredforthegroupsofthe
correspondingdevice.TheABCLXdriversupportsSTATUS_UNITcommands
ontheinactiveserver,soeventhoughaparticulardeviceisnotcurrently
servicingCitectSCADArequests,thestateofthestatusconditionwillbechecked
periodicallyallowingthedevicetobetakenofflineoronline.SeeStop_Unit
handling.
Note:Ifboththeprimaryandstandbydeviceshavethesamestatuscondition
andtheconditionisfailing,bothwillbetakenoffline.Allpointsinthesystem
forthatunitwilldisplay#COM.
Thesyntaxforastatustagis:
StatusTag=<TagName><Operator><Operand>
ABCLX driver
where:
<TagName> =
<Operator> =
<Operand> =
the name of the PLC tag address whose value is to be used in the comparison
operation;
the comparison operator (see operator list below);
the value to be used in the comparison operation against the value of <TagName>.
Thecomparisonoperatorcanbeoneofthefollowing:
Examples
Operator
Description
>
>=
<
<=
&
=
!&
!=
BringallABCLXdriverdevicesonlineonlywhentheintegertagnamed
TankLevelisgreaterthan100:
[ABCLX]
StatusTag=TankLevel>100
BringanydeviceontheportnamedPort1ontheI/OservernamedCLServer
onlineonlywhenthedigitaltagnamedisReadyistrue(where0=falseand
1=true):
[CLServer.Port1]
StatusTag=isReady=1
BringtheparticulardevicenamedPort123ontheI/OservernamedCLServer
onlineonlywhenthecurrentvaluesharescommonassertedbitswith5.
[CLServer.Port123]
StatusTag=TagName&5
IfthecurrentvalueforthetagcalledTagNamewas3,theexampleabove
wouldsetthestatustotrueandbringthedeviceonline,as3and5sharea
commonbit(3=0011inbinary,and5=0101).IfthevalueforTagNamewere2,
thedevicewouldremainofflineas2and5donotsharecommonbits(2=0010,5
=0101).
Withtheexamplebelow,theportnamedPort123onCLServerwillcome
onlineonlywhenthecurrentvalueforTagNamedoesnotsharecommon
assertedbitswith5.
[CLServer.Port123]
33
34
ABCLX driver
StatusTag=TagName!&5
Mode detection
ThePLCmodeisdeterminedbytwothings.Firstly,thephysicalkeypositionin
thePLC;andsecondly,wheninREMOTEmode,whetherornotthePLChas
beensettoRUNmodeorPROGRAMmode.ThisstateisrepresentedinthePLC
byanumericvaluethatcanbequeried.
ThefollowingtablesetsoutthedifferentvaluesandthecorrespondingPLC
mode:
Mode Value
Key Position
Mode
0x1060
0x3060
0x3070
0x2070
RUN
REMOTE
REMOTE
PROGRAM
RUN
RUN
PROGRAM
PROGRAM
ThesevaluescanbeusedtosetupastatustagtodeterminewhatmodethePLC
iscurrentlyin,asshownbelow.
Status Tag
Configuration Description
@Mode<0x2000
@Mode>0x3000
@Mode!&0x1000
@Mode!&0x10
@Mode&0x10
Hencetheunitcanbetakenofflineorbackonlinedependingonthekeyposition
andthecurrentmodeofthePLCtodisplay#COMforthepointsonthisunit.
AbadtagisdefinedasanytagthatdoesnotexistwithintheControlLogix
system,whichisaproblemthatcanoccurwhendevelopinglargesystems.
Duringthecommissioningphaseaproject,youneedtoclearlyidentifyany
blocksofdatathatincludebadtags.TheFailOnBadDataparameterhelps
achievethisbyallowingyoutorunyourprojectintwodifferentmodes:
WhenFailOnBadDataisoff,theABCLXdriverwillnotreturn#COMfora
blockofdataifatleastonevalidvalueisinthereadblock.
IfFailOnBadDataison,ifanyvaluesinablockedreadfail,thewholeblock
isfailedas#COM.Thishighlightsthepresenceofbadtagsandidentifies
wherecorrectiveactionisrequired.Thisdefaultbehavioristhepreferred
modeofoperationwhenyouarerunningaproject.
Avalueof1(default)indicatesthatcommissioningmodeisON,0indicates
commissioningmodeisOFF.SeeDriverspecificCitect.INIparameters
Note:Whenyouvecompletedcommissioning,youshouldresetthe
CommissioningparametertozeroordeleteitfromtheprojectCitect.INIfile.
ABCLX driver
Example
Displaybadtagreadswith#COMduringprojectcommissioning:
[ABCLX]
FailOnBadData=1
Ignorebadtagreadsduringnormaloperation:
[ABCLX]
FailOnBadData=0
Scan rates
TheCitectSCADAABCLXdrivercandefineI/Odeviceswithdifferentscan
rates.Thisprovidesyouwiththeabilitytobettertuneyoursystem,byordering
thetagdatabaseintologicalgroupsanddefiningdifferentscanratesforeach
group.Forexampletagsthatarebeingreadfrequentlycanbeplacedinagroup
thatisscannedfrequently,andtagsthatarereadinfrequentlycanbeplacedina
groupthatisscannedinfrequently.
Bydefault,alltagsarescannedatthedefaultscanratedefinedbytheScanRate
parameterintheprojectCitect.INIfile.SeeCitect.INIspecificparametersfor
details.
Note:IfyouhaveconfiguredI/Oserverredundancyinyourproject,itmaybe
consideredaninefficientuseofnetworkbandwidthtobecontinuallypolling
devicesnoncriticaltothecurrentlyinactiveserver.Tohelpreduceunnecessary
networktraffic,theABCLXdriversupportstheuseoftheInactiveScanAdjust
parameter,whichappliesadelayfactortothescanrateofcurrentlyinactiveI/O
Servers.SeeDriverspecificCitect.INIparametersfordetails.
Examples
Settheprojectscanrateto1second(1000milliseconds):
[ABCLX]
ScanRate=1000
Settheprojectscanrateto1second(1000milliseconds),andtheinactiveserver
scanadjustratetoafactorof5:
[ABCLX]
ScanRate=1000
InactiveScanAdjust=5
Setafaster(halfsecond)scanrateforaspecificportnamedPort1ontheI/O
servernamedCLServer:
[CLServer.Port1]
ScanRate=500
Setaslower(5second)scanrateforaspecificportnamedPort123ontheI/O
portnamedCLServer:
[CLServer.Port123]
ScanRate=5000
35
36
ABCLX driver
Troubleshooting
Mostlargeprojectswillsufferbugsintheruntimesystem.However,most
problemshavesimplesolutionsandrequireonlyperseverancetosolvethem.
ThefollowingtopicsprovideinformationabouttheCitectSCADAtools
providedtohelpresolveproblemswithcommunicationandconfiguration.
HardwareAlarms
TheSysLog.DATfile
DriverErrors
Logging
CitectKerneldiagnostics
Maintainingtheprojectdatabase
Tagbaseddriverconsiderations
ForanswerstocommonproblemsthatrelatemorespecificallytotheABCLX
driveranditsoperation,seeFrequentlyAskedQuestions.
Hardware Alarms
WhenasystemerroroccursthatisamalfunctioninCitectSCADAoperation,
CitectSCADAgeneratesahardwarealarm.Hardwarealarmsareusually
displayedonadedicatedHardwareAlarmpage,whichisavailableasa
standardtemplate.
Thehardwarealarmpageisyourprimaryindicatorofwhatishappeningin
yourCitectSCADAsystem.Ifacommunicationfaultoccurs,ifCicodecant
execute,ifagraphicspageisnotupdatingcorrectly,orifaserverfails,thispage
willalertyoutoit.Hardwarealarmsconsistofauniquedescriptionanderror
code.
Thehardwarealarmsdonothavedetailedinformation,butpointyouinthe
directionofaproblem.Forexample,ifyouhaveaConflictingAnimationalarm,
CitectSCADAwillnottellyouthecause.Youmustobservewhichpagecauses
thehardwarealarm,andlocatetheanimationsyourself.
Note:Yoursystemshouldhavenorecurringhardwarealarms.If,after
reviewingalldocumentation,youcannotrectifyanalarm,contactCitect
TechnicalSupport.
TheSysLog.DATisafilemaintainedbyruntimeCitectSCADA,thatcontainsa
usefullogofCitectSCADASysteminformation.Thevarietyofinformationthat
canbeloggedtotheSysLog.DATisextensive:fromlowleveldrivertrafficand
Kernelmessages,touserdefinedmessages.
TheLogReadandLogWritefieldsintheI/ODevicesPropertiescontrolwhether
logsaremadeforeachI/ODevice.
ABCLX driver
Note:CitectSCADAlockstheSysLogfilewhilerunning.However,youcanstill
viewitbyusingtheSysLogcommandintheKernel.SeeCitectKernel
diagnostics,andtheCitectSCADAUserGuidefordetails.
Driver Errors
CitectSCADAABCLXdrivererrorscanoccurwhenaControlLogixDevicefails
torespond,orisdisconnectedoroffline,orreturnsanerroritself.Errorcodes
arelistedbelow.
TheABCLXdriverprovidestheabilitytologcombinationsoftracelevelsacross
differentcategories.Formoreinformation,seeLogging.
Common Protocol Errors
CitectSCADAhastwokindsofprotocoldrivererrorsgenericandspecific.
Genericerrorsarehardwareerrors031,andarecommontoallprotocols.There
areanumberofgenericerrorsthatarealsocommontoallprotocols.Insome
casesonlythegenericerrorisavailable,thoughoftenboththegenericerrorand
aspecificerroraregiven.
Protocoldriversalsohavetheirownspecificerrors,whichcanbeuniqueand
thereforecannotberecognizedbythehardwarealarmsystem.Thedrivers
converttheirspecificerrorsintogenericerrorsthatcanbeidentifiedbytheI/O
Server.Forexample,whenadriverhasafault,thereisoftenbothaprotocol
specificerrorandacorrespondinggenericerror.
Whenahardwareerroroccurs,CitectSCADAgeneratesanalarm,anddisplays
thealarmonthehardwarealarmpage(inthealarmdescriptionofthehardware
alarm).Toseetheerrornumber,makesureyouhaveAlarmCategory255
definedwithadisplayformatthatincludes{ErrDesc,15}{ErrPage,10}.
Thefollowingerrors,listedin(hexadecimal)sequence,arecommontoall
protocols.CitectSCADAdisplaystheerrornumberanddescriptionforcommon
protocolspecificerrors.Uncommonerrorsarenotcontainedinthe
CitectSCADAerrordatabase,inwhichcaseCitectSCADAwillonlydisplaythe
errornumber.
Error Value
(in Hex)
Error Definition
0x20000007
0x20000006
0x20000009
0x2000000B
0x2000000C
0x20000010
0x20000011
0x20000015
0x20000016
37
38
ABCLX driver
Note:Ifoneoftheseerrorsoccursbyitselfandispersistent,youshouldcontact
CitectSupport.
Youmayrequireadditionalinformationtoenableyoutorectifyanerror.This
informationshouldbedetailedinthedocumentationthataccompaniedtheI/O
Device(ornetwork).If,afterreviewingalldocumentation,youcannotrectifyan
error,contactCitectTechnicalSupport.
ABCLX Protocol Errors
Thefollowingerrors,listedin(hexadecimal)order,arespecifictothe
CitectSCADAABCLXprotocol:
Error Value
(in Hex)
Error Definition
Error Description
0x13
0x17
0x18
0x19
0x1E
0x800
0x100 to 0x899
Youmayrequireadditionalinformationtoenableyoutorectifyanerror.This
informationshouldbedetailedinthedocumentationthataccompaniedthe
ControlLogixsystem.
Logging
Logsareausefultoolwhenitcomestodebuggingadriver.
SettingtheparameterLogTagInfoto1allowsyoutogeneratethreefiles:
TAGLIST.TXT
SUBSCRIBE.TXT
OPT_BLOCKS.TXT
ThelocationofthesefilesisdeterminedbytheparameterLogTagInfoPath
whichacceptsanyvalidpath.ThedefaultsettingisC:\.Notethatifthe
destinationdirectorydoesnotexist,thefileswillnotbegenerated.
Thefilenameswillhave[IOServerName]_[PortName]_asaprefix.
Forexample:
IOServer__p1_TagList.txt
IOServer__p1_subscribe.txt
IOServer__p1_opt_blocks.txt
ABCLX driver
TheABCLXdriveralsoprovidestheabilitytologcombinationsoftracelevels
acrossdifferentcategories.Thisisachievedbysettingthefollowingini
parameters:
DebugLevel
Allowsyoutodefinethetracelevel.Theoptionsincludewarnings,errors
traces,oralloftheabove.
DebugCategory
Allowsyoutoenableloggingforaparticularcategoryoftrace.Theoptions
include:
TAG
SOCK
EIP
DCB
BUFF
THRD
ALL
Note:Themoredetailedthelogging,thelargertheamountoflogdatawillbe
generated.Thiscouldcreatealarge,cumbersomelogfile,orcausemultiple
wraparoundsthatwriteoverdata.
Example
Thefollowingparametersettings:
[ABCLX]
DebugLevel=WARNN|ERROR|TRACE
DebugCategory=ALL
39
40
ABCLX driver
wouldsendthefollowingloginformationtoafilecalledABCLX.log:
ThisfileisdeliveredtotheWindowssystemdirectory(e.g.C:\Windowson
WindowsXP).Itslocationisnotconfigurable.
SeetheCitectSCADAKnowledgeBasearticleQ3994forfurtherexamplesof
ABCLXlogging.
See Also
Citect Kernel
diagnostics
DriverspecificCitect.INIparameters
TheCitectKernelwindowdiagnosticsframework(commonlyreferredtoasthe
Kernel),istheprimarygatewayintotheinternalworkingsofCitectSCADAat
runtime,andisprovidedfordiagnosticsanddebuggingpurposesonly.
TheKernelcandisplayseveraldifferentdiagnosticwindowseachdisplayingan
activeviewintotheworkingsoftheCitectSCADAruntimesystem.Each
windowisdisplayedwhenselectedfromtheCitectKernelViewmenu.
FormoredetailsofusingtheCitectKernel,seetheCitectSCADAUserGuide.
Warning!UsetheKernelwindowwithcare,becauseonceyouareintheKernel,
youcanexecuteanyCicodefunctionwithnoprivilegerestrictions.You(or
anyoneusingtheKernel)hastotalcontrolofCitectSCADA(andsubsequently
yourplantandequipment).
Setting up the Kernel
YouneedtoconfigureyourCitectSCADAprojecttoprovideruntimeaccessto
theKerneldiagnosticswindow.Youcandooneorbothofthefollowing:
enabletheKernelonCitectSCADAstartup;or
addtheKernelmenuitemtotheruntimeCitectSCADAControlmenu.
ABCLX driver
ToenabletheKerneldiagnosticswindowonCitectSCADAstartup:
1
IntheCitectExplorermenu,selectView|ConfigurationFile.Thislaunches
WindowsNotepadandloadsanddisplaystheCitect.INIfileformanual
editing.
Scrolldowntothe[Debug]category,andeditthesectiontoincludethe
followingparameter:
[DEBUG]
Kernel=1
SaveandCloseNotepad.
Note:TheCitect.INIfileislocatedintheWindowsfolder.Typically:
C:\WINDOWSorC:\WINNT.
ThisparameterwillcausetheautomaticdisplayoftheCitectKernelwindow
diagnosticsframeworkuponstartupofCitectSCADA.Swaptoittoviewwhats
happeninginsideCitectSCADAatruntime.
ToaddtheKernelmenuitemtotheCitectSCADAruntimeControlmenu:
1
InCitectExplorerorProjectEditor,launchtheComputerSetupWizard
andselectCustommode:
ClickNextuntilyoureachtheSecuritySetupControlMenupage:
41
42
ABCLX driver
ChecktheKernelonmenuoptionandclickNextuntilfinished.
Atruntime,youcandisplaytheKernelwindowbyselectingKernelfromthe
Controlmenu(topleftcorner)ofCitectSCADA.IfyoudonothaveaTitleBar
displayedinyourruntimeproject,youcanaccesstheControlmenubypressing
Alt+Spacebar(iftheAltSpaceenabledoptionistickedontheSecuritySetup
Keyboardpage).
Note:Youshouldunchecktheseoptionsbeforehandover,topreventaccidental
orunauthorizeduseoftheKernelinthedeliveredsystem.
The Diagnostic Windows
ThekeydiagnosticwindowsincludedwiththeKernelfortestingI/Odevice
communicationsaretheMainwindow,theI/ODeviceswindow,andtheDriver
Statisticswindow:
TheCitectKernelMainwindowdisplaysthediagnosticmessagesalineat
atimeindicatingthecurrentCitectSCADAstartupoperationandstatus.
Whenrunning,theMaindiagnosticswindowcontinuestoreportchangesin
thestatusoftheI/Odevices.
TheCitectKernelUnitwindowdisplaysthecurrentstatusofalldevices
definedintheI/ODevicedatabase.
TheCitectKernelDriverwindowdisplaysinformationabouteachdriver
intheCitectSCADAsystem.Thiswindowisonlydisplayedifthecomputer
isconfiguredasanI/OserverwithphysicalI/Odevicesattached.
ABCLX driver
Citect Kernel Main window
AfteryourI/Odevicesareproperlyconfigured,theMainwindowisparticularly
usefultocheckthatallofyourI/Odevicescomeonlinecorrectlywhen
CitectSCADAisstarted.
Firsttheportswillbeinitialized,thentheI/ODevicewillbebroughtonline.If
thereisaproblem,CitectSCADAwilldisplayamessage;PLCnotresponding,
I/ODeviceOfflineorsimilar.
SomeI/ODevicesmaytaketwoattemptstocomeonline.Ifthisisthecase,
CitectSCADAwillwait(usually30seconds)andtryagain.IfyourI/Odevice
doesnotcomeonlineafterthesecondattempt,youshouldcheckyour
configuration(atbothends)andthenetworkinbetween.
43
44
ABCLX driver
Commonproblemsthatmaycausestartuperrorsinclude:
IncorrectcomputersetupusuallysolvedbytheComputerSetupWizard
Networkingfaultsorbadhardwarecableswronglywiredorunplugged,
orequipmentnotpoweredup,orfaultyequipment
Communicationfaultsmostoftenaconfigurationmistakelikewrong
protocolsettings,wrongport,etc.
Note:TheKernelMaindiagnosticwindowcontainslegacybehaviorfromthe
earlydaysofWindows.Ithasnoscrollbar,soasnewmessagesareaddedaline
atatimetotheendofthedisplayedlistofmessages,andthewindowisfilled,
theoldestofmessages(atthetopofthewindowlist)willscrolloutofviewand
beirretrievable.However,youcanviewthisinformationusingThe
SysLog.DATfile.
Citect Kernel Unit window
TheUnitdiagnosticswindow,launchedviathePageUnitKernelcommand,
displaysthecurrentstatusofalldevicesdefinedintheI/ODevicedatabase.In
thiswindow,usethePageUporPageDownkeystobrowsethroughthe
availabledevices.
TheimportantvaluestochecktoconfirmthatcommunicationswiththeI/O
deviceareenabledandrunningaretheServerStatusandClientStatusfields.
WhentheI/Odeviceisonline,thesewillbothdisplayRUNNING.
SearchfortheKernelPageUserCommandintheCitectSCADAUserGuidefor
adescriptionofallthefieldsdisplayedforeachI/OdeviceintheUnit
diagnosticswindow.
ABCLX driver
Citect Kernel Driver window
TheCitectKernelDriverwindow,launchedviathePageDriverKernel
command,displaysinformationabouteachdriverintheCitectSCADAsystem.
Thestatisticsitpresentsincludereadrequests,physicalreads,digitalreadsper
second,registerreads,cachereads,errorcount,timeouts,andsoon.Seethe
CitectSCADAUserGuideformoreinformationonthegeneralstatisticsit
presents.
NotethatinthecaseoftheABCLXdriver,theKernelDriverwindowincludes
additionalfieldsthatarenotnormallysupported.YouwillneedtopressVto
seetheseadditionalfields.Theyare:
Field
Description
45
46
ABCLX driver
Field
Description
Session State
Current state of the socket to the PLC (same thread states as Session Thread
State above)
Backend Pending Resp Number of requests currently awaiting response from the PLC
Cache Delayed Reply
Forward Opens
Optimized Blocks
Tags Subscribed
Good Tags
Bad Tags
QTM Tags
Session Disabled
Afteryouveeditedyourprojectforawhile,theprojectdatabasecanbecome
fragmentedandproblematic.Goodpracticeduringprojectdevelopmentisto
periodicallyclearoutallduplicatedrecordsandanyorphanedones.
ABCLX driver
Improperlymaintaineddatabaseshaveproventobeasourceofcommunication
problemsatruntime.Themajorityofallcommunicationsproblemscomefrom
havingduplicatedororphanedrecordsinthecommunicationsdatabase.
SometimestherewillbeorphanedrecordsfromapreviousI/OServerleft
behindinthedatabasefiles.AsalltheformsareindexedontheI/OServername,
youcanusethescrollbartoquicklynavigatetotheendofthecurrentrangeof
recordsforaparticularI/OServerandexaminethelastfewandnextfewrecords
tovalidatethattheyshouldbethere.Ifyoufindanyextra(unwanted)records,
deletethem.
Youshouldalsomakesurethattherearenoduplicatedrecords.Usetherecord
searchfacilitytosearchforduplicateentriesofdevicesthatarecausing
unexplainedcommunicationerrors.Ifyoufindanyextra(unwanted)records,
deletethem.
Onceyouhavedeletedorphanedandduplicatedrecords,packtheproject.
Packingthedatabaseremovesdeletedrecords,andreindexesthedatabase.To
packtheprojectdatabases,fromtheFilemenuinCitectProjectEditor,select
Pack.
ThereisinformationaboutthewayCitectSCADAhandlesOIDsthatyoushould
beawareofbeforeattemptingthetasksmentionedhere.Formoreinformation
onOIDs,seetheCitectSCADAKnowledgeBasearticleQ3657.(TheKnowledge
BasecanbeinstalledfromtheCitectSCADACD,ordownloadedfrom
www.citect.com.)
Tag-based driver
considerations
TheCitectSCADAABCLXdriverusesOIDs(objectidentifiers)touniquely
identifytagaddresses.TheseOIDsaregeneratedbyCitectSCADAduring
compilation.
YouneedtobeawareofthewayOIDsareimplementedforatagbaseddriver,
asthiswillavoidpotentialtagmismatchesoccurring.Thisisaparticular
concernwithnetworkdistributedsystems.Forexample,alltheCitectSCADA
serversandclientsmusthavetheexactlythesamevariabledatabaseonthem,
otherwiseaclientcouldmakearequestforatagwithanOIDthateitherdoes
notexistontheI/OServer,orreferstoadifferenttag.Forthisreason,caremust
betakenwheneditingavariablesdatabase.
Thefollowinginformationisintendedtodrawattentiontoactivitiesthatrequire
carefulattentionbecauseofthepotentialimpacttheymayhaveontheOIDsin
yoursystem.
FormoreinformationonOIDs,seetheCitectSCADAKnowledgeBasearticle
Q3657.(TheKnowledgeBasecanbeinstalledfromtheCitectSCADACD,or
downloadedfromwww.citect.com.)
47
48
ABCLX driver
Project IDs
OIDsaregeneratedusingaProjectID,andtheposition(i.e.recordnumber)in
theassociatedvariable.dbffile.Therefore,itisimperativewhenusingdisplay
clients,standbyservers,andsoon,thataprojectrestoredtoaPChasa
consistentProjectIDacrossallthemachinesincludedinasystem.
ThisshouldbecheckedwheneveryourestoreaprojecttoaPC,becauseifthe
ProjectIDisalreadyusedbyanotherprojectonthatparticularcomputer,Citect
willgenerateanewProjectIDnumber.
AprojectsIDnumbercanbedeterminedbyselectingaprojectinCitectExplorer
andviewingitsproperties.TheProjectIDisshownontheGeneraltab.Itis
alsostoredintheprojectbackupfile(.ctz).
Using Include Projects
YoushouldensurethateachincludeprojecthasthesameProjectIDoneach
computerusingthesameincludeproject.Againitisimperativethatthisis
checkedafterrestoringaprojecttoacomputer.
Variable Databases
Ifyouhavedifferentvariable.dbffilesacrossyourplant,itispossibletohave
OIDmismatches.
Toavoidthis,ensurethatonceyouhavemadechangestoyourvariable.dbfon
yourPrimaryServer,thatyouresettheOID(incitect.inifileset[OID]Reset=1)
anddoapackandfullcompile(i.e.ensurethatincrementalcompileisturned
off).
Oncethisisdone,thevariable.dbffileshouldbecopiedtotheStandbyServer
andanyDisplayClientsusingtheproject.ThisensuresthatanOIDonyour
PrimaryServeristhesameastheOIDusedonyourDisplayClientand/or
StandbyServer.
Hint:Ifyouareusingincludeprojects,youshouldpackallyourvariable.dbf
beforeresettingtheOIDsanddoingafullcompileofyourproject.Thereisa
downloadabletoolavailablecalledPackAllthatwillpackallthevariable.dbfs
thatareusedinyourproject(eveniftheyareincludeprojects).Thistoolis
locatedunderDatabaseToolsintheToolboxsectionofwww.citect.com.
See Also
Frequently Asked
Questions
FrequentlyAskedQuestions
Thissectionaddressesproblemsthatmaybeencounteredwhensettingupand
operatingtheABCLXdriver.Theyhavebeengroupedintocategoriestohelp
youeasilydeterminethelikelysolutiontothetypeofproblemyoure
encountering.
TheanswerstothesequestionstypicallypointtoanarticleintheCitectSCADA
KnowledgeBase,whichcanbeinstalledfromtheCitectSCADACD.Themost
ABCLX driver
currentversionoftheKnowledgeBasecanalsobedownloadedfromtheCitect
website(www.citect.com).
Startup issues
WhydoIgetaChannelOfflineCannotTalkerrormessagewhenthe
ABCLXdriveriscomingonline?
WhydoesittakesolongfortheABCLXdrivertocomeonline?
EverytimeIstartCitectSCADA,Iseeanuisancehardwarealarmformy
ABCLXdevicethatbecomesinactiveafterabout30seconds.HowdoIstop
thishappening?
CTAPI issues
UsingCTAPItoreadtagsfromanABCLXdevicecausesblanktagsto
appear.
Why do I get a Channel Offline Cannot Talk error message when the ABCLX driver is
coming online? TherecanbeanumberofreasonswhyABCLXdrivercannot
bringitsdevicesonlineatstartup.YoushouldinitiallyconfirmthattheBoards,
PortsandI/ODevicesformsarefilledoutcorrectly.Youshouldalsoconfirmthat
youhaveenoughidletimeinyourPLCprogramtoallowcommunication
requeststotakeplace.
SeetheKnowledgeBasearticleQ4009forfurtherinformationonhowto
diagnosethisproblem.Italsoincludesinformationaboutparametersettings
andadjustmentsthatmayimpactthisprocess.
Why does it take so long for the ABCLX driver to come online? WhentheABCLX
driverattemptstobringdevicesonline,itinitiatesaprocessofdownloadingand
subscribingtherequiredtagsfromtheassociateddevices.Ifaprojecthasalarge
numberoftags,thisprocessmayoverlapwithdriverpolling,causing
unnecessarydelays.InsufficientidletimeinthePLCprocessormayalsocause
Citectdriverrequeststobeprolongedunnecessarily.
TheKnowledgeBasearticleQ4001providesadescriptionofhowCitectSCADA
bringstheABCLXdriveronline.
Every time I start CitectSCADA, I see a nuisance hardware alarm for my ABCLX device that
becomes inactive after about 30 seconds. How do I stop this happening? Hardware
alarmsaregeneratedbyCitectSCADAwheneverInitUnitfails.Inthecaseof
ABCLXdriver,thiscanoccurbecausetherequiredtagshavenotdownloaded
andcompletedsubscription.
Asaresult,thereisnocurrentworkaroundorsolutionforsuppressingthis
hardwarealarm.However,itshouldbenotedthatthespeedatwhichadriver
comesonlinecanbeimpactedbynetworkbandwidth,PLCCPUutilization,and
thenumberoftagsandthenumberofbadtags.
49
50
ABCLX driver
PleaserefertoKnowledgeBasearticlesQ4001andQ4009formoreinformation
onhowtodiagnoseandfinetunethestartupprocess.
Using CTAPI to read tags from an ABCLX device causes blank tags to appear. Using
CTAPItoreadtagsfromadeviceusingtheABCLXdrivercausesthefirsttagto
displayitsvaluecorrectly,buttheresttoappearblank.Thisiscausedbya
blockingissueinCTAPI.
TheworkaroundistochangetheProtdir.dbfentryforABCLXfroma
Max_Lengthof2048to2032,andBit_Blockfrom2048to2032onallCitect
computersonthesystem.Thiswillensurethatalltherequestedtagsareread
correctly.Pleasenote,however,thatthiswillreducethemaximumrequest
lengthfrom256bytesto254bytes,whichreducesthemaximumsizeofarrays
andstrings.
Itisimperativethatthischangebemadetotheprotdir.dbffileinthe\Citect\Bin
andthe\Citect\User\Includedirectories.
SeetheKnowledgeBasearticleQ4068formoredetails.
Index
A
ABCLX
About,1
ABCLXDriverPack,2
Advancedconfiguration,20
FailOnBadDatamode,34
modedetection,34
performancetuning,28
redundancy,27
scanrates,35
sessioncontrol,30
statustags,32
ControlLogixsystem
preparingforcommunication,2
requirements,2
Creatingatestproject,3
CustomizingaprojectusingCitect.iniparameters,20
D
DataCoercion,11
Datatypes,10
datacoercion,11
DriverErrors,37
DriverPack
installation,2
E
exclusiveconnection,5
C
Citect.iniparameters,20
CitectSCADAproject
addingdevices,6
addingtags,9
advancedconfiguration,20
arraytagaddressing,13
configuring,6
customizing,20
datatypes,10
indivdualtagaddressing,12
programtagaddressing,17
qualityandtimestamptags,17
redundancy,27
CommunicatingwiththePLC
settingup,3
Configuringredundancy,27
Configuringyourproject,6
addingdevices,6
addingtags,9
advancedconfigurations,20
arraytagaddressing,13
customizing,20
datatypes,10
indivdualtagaddressing,12
programtagaddressing,17
qualityandtimestamptags,17
redundancy,27
H
HardwareAlarms,36
I
IdentifyingbadtagsusingFailOnBadData,34
Installation,2
Introdcution,1
K
Kerneldiagnostics,40
L
Logging,38
M
Maintenance,20
projectdatabase,46
Modedetection,34
P
Performancetuning,28
PLC
communicationsetup,3
PreparingtheControlLogixsystem,2
programtags
52
Index
addressing,17
Project
addingdevices,6
addingtags,9
advancedconfiguration,20
arraytagaddressing,13
configuring,6
customizing,20
datatypes,10
individualtagaddressing,12
qualityandtimestamptags,17
project
programtagaddressing,17
Projectdatabase
maintenance,46
SettingUpCommunications
ExclusiveConnection,5
Settingupcommunications
creatingatestproject,3
serialconnectionvia1761NET_ENImodule,5
Statustags,32
SysLog.DATfile,36
Redundancy,27
RoutePath,25
Tagaddressing
arrays,13
indivdual,12
programtags,17
Tagbaseddriverconsiderations,47
Testproject,3
Timestamptags,17
Troubleshooting,36
drivererrors,37
hardwarealarms,36
Kerneldiagnostics,40
logging,38
SysLog.DATfile,36
Q
Qualitytags,17
Scanrates,35
SessionControl,30
UsingaroutepathtolocatearemoteCPU,25