Applies To:
  • CitectSCADA 1.00 1.01 1.10 1.11 1.20 2.00 2.01 3.00

Summary:
How do I use the CCM protocol? 

Solution:
The serial drivers PCxI, MCxI, COMxI or COMx may be used.

Setup the PLC with the appropriate communication parameters i.e. baud rate, parity, protocol and station number.

Ports form
Special Opt: -m Use master/slave protocol instead of peer to peer
-u Do not use expanded IO functions. Use with old version of PLC communication module.
-nN Set node address of this port to N
I/O Devices form
Name: User supplied unique name
Number: Network wide I/O device number
Address: PLC station number
Protocol: CCM for the GE Series Six
CCM325 for the TI 325
CCM405 for the TI 405
CCM8 for the TI SG 8
CCM9030 for the GE 90/30
CCM9070 for the GE 90/70
Port name: Use the "Port name" from the Ports form

Citect.ini options

[CCM]
Status = 1
Check that CPU is in run mode on startup and every watchtime (30 seconds)

EotDelay = 0
Delay between sending EOT to end transaction and sending ENQ of next transaction

EnqDelay = 20
Delay before re-sending ENQ after receiving a bad response to an ENQ

Standard citect.ini options

[CCM]
MaxPending = 8
Block = 100 bytes
Retry = 2
Delay = 0
TimeOut = 1000 milliseconds (for 4800 baud)
PollTime = 0
WatchTime = 30 seconds

Files

  • CCM.DLL - the CCM driver for windows
  • GE_6.DBF - the GE PLC-6 variable template
  • TI_325.DBF - the TI 325 variable template
  • TI_405.DBF - the TI 405 variable template
  • TI_SG8.DBF - the TI SG8 variable template
  • GE_9030.DBF - the GE 90/30 variable template
  • GE_9070.DBF - the GE 90/70 variable template

Error Code (in decimal)

40 Received response to ENQ, but it is not an ACK. Most likely because the CCM ports are shared.
41 Received NAK to a Header request. An ACK was expeced.
42 Received NAK to a Data message. An ACK was expected.
43 Received response to Data message, but it not an ACK or NAK.
44 Attempt to send new request when the last request was not completed correctly. Will count up one of special counters (Bad State 1/2/3)
46 Attempt to read data from the PLC when it is not in run mode. This check can be turned off by setting [ccm]status=0
47 Received a response to Header request, but it is not an ACK or NAK.

GE Fanuc Series Six PLC Variables

Integer
R Registers 1 to 16384
DSW Diagnostic Status Word 1 to 20
Byte
QAB Quick Access Buffers 0 to 1023
SP Scratch Pad 0 to 255
Digital Bits 1 to 1024
I O IO OO AIO AOO
AO O1+ O2+ O3+ O4+ O5+ O6+ O7+
O8+ O9+ OA+ OB+ OC+ OD+ OE+ OF+
AI I1+ I2+ I3+ I4+ I5+ I6+ I7+
I8+ I9+ IA+ IB+ IC+ ID+ IE+ IF+
O0- O1- O2- O3- O4- O5- O6- O7-
O8- O9- OA- OB- OC- OD- OE- OF-
I0- I1- I2- I3- I4- I5- I6- I7-
I8- I9- IA- IB- IC- ID- IE- IF-

TI 325 Controllers Variables

Integer
400-576 Registers (must be even)
600-677 TMR/CTR Accumulators
Digitals
000-777 Bits
All addresses are in octal.

GE 90/30 and GE 90/70 PLC Variables

Integer
R Registers 1 to 8192
DSW Diagnostic Status Word 1 to 20
Byte
SP Scratch Pad 1 to 255
Digital Bits 1 to 8192
I Q

TI 405 PLC Variables

Integer
TMR Timer accumulators 0 to 177 octal
CNT Counter accumulators 0 to 177 octal
V Registers 1400 to 7777 octal
DSW Diagnostics status 0 to 5
Byte
SP Scratch Pad 0 to 0x8ff hexadecimal
Digital
GX Remote I/O 0 to 777 octal
X Inputs 0 to 477 octal
Y Outputs 0 to 477 octal
C Control relays 0 to 737 octal
S Stages 0 to 577 octal
T Timer relays 0 to 177 octal
CT Counter relays 0 to 177 octal
SP Special relays 0 to 177 and 320 to 617 octal

TI SG 8 PLC Variables

Integer
TMR Timer accumulators 0 to 377 octal
R Timer accumulators 400 to 777 octal
CNT Counter accumulators 0 to 377 octal
V Registers 1400 to 37777 octal
DSW Diagnostics status 0 to 5
Byte
Z Scratch Pad 0 to 0x8ff hexadecimal
Digital
GI Remote inputs 0 to 3777 octal
GQ Remote outputs 0 to 3777 octal
I Inputs 0 to 1777 octal
Q Outputs 0 to 1777 octal
M Control relays 0 to 3777 octal
S Stages 0 to 1777 octal
T Timer relays 0 to 377 octal
C Counter relays 0 to 377 octal
SP Special relays 0 to 777 octal
 

Keywords:
 

Attachments