0% found this document useful (0 votes)
6 views

CodeSys指令手册

Uploaded by

dagengron
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

CodeSys指令手册

Uploaded by

dagengron
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 118

AC500

CodeSys
..................................................................................................................... 0
1 CODESYS ......................................................................... 5
1.1 ........................................................................................................................................... 5
1.2 ............................................................................................................................................... 5
1.3 ................................................................................................................................... 5

2 ................................................................................................... 9
2.1 ................................................................................................................................... 9
2.1.1 ADD—— ............................................................................................................. 9
2.1.2 MUL—— ............................................................................................................. 9
2.1.3 SUB—— ............................................................................................................ 10
2.1.4 DIV—— ............................................................................................................. 11
2.1.5 MOD—— .......................................................................................................... 11
2.2 ......................................................................................................................................... 12
2.3 ................................................................................................................................. 13
2.3.1 AND—— ............................................................................................................... 13
2.3.2 OR—— .................................................................................................................. 13
2.3.3 XOR—— ........................................................................................................... 14
2.3.4 NOT—— ............................................................................................................ 14
2.4 ......................................................................................................................................... 15
2.4.1 SHL—— ............................................................................................................ 15
2.4.2 SHR—— ............................................................................................................ 15
2.4.3 ROL—— .................................................................................................... 16
2.4.4 ROR—— .................................................................................................... 17
2.5 ......................................................................................................................................... 17
2.5.1 SEL—— ......................................................................................................... 17
2.5.2 MAX—— ................................................................................................... 19
2.5.3 MIN—— .................................................................................................... 20
2.5.4 LIMIT—— ..................................................................................................... 20
2.5.5 MUX—— ....................................................................................................... 21
2.6 ......................................................................................................................................... 22
2.6.1 GT—— .............................................................................................................. 22
2.6.2 LT—— ............................................................................................................... 23
2.6.3 GE—— ....................................................................................................... 23
2.6.4 LE—— ....................................................................................................... 25
2.6.5 EQ—— .............................................................................................................. 26
2.6.6 NE—— .......................................................................................................... 26

ABB PLC 1 AC500/Issue: 06.2012


2.7 ......................................................................................................................... 27
2.7.1 BOOL_TO_<TYPE>—— ................................................................. 29
2.7.2 BYTE_TO_<TYPE>—— .................................................................. 30
2.7.3 WORD_TO_<TYPE>—— .................................................................... 32
2.7.4 DWORD_TO_<TYPE>—— ............................................................. 34
2.7.5 SINT_TO_<TYPE>—— ....................................................................... 35
2.7.6 USINT_TO_<TYPE>—— ......................................................... 36
2.7.7 INT_TO_<TYPE>—— ...................................................................... 36
2.7.8 UINT_TO_<TYPE>—— ....................................................... 37
2.7.9 DINT_TO_<TYPE>—— ............................................................... 38
2.7.10 UDINT_TO_<TYPE>—— ................................................ 40
2.7.11 REAL_TO_<TYPE>—— .................................................................. 42
2.7.12 TIME_TO_<TYPE>—— ................................................................... 42
2.7.13 DATE_TO_<TYPE>—— .................................................................. 43
2.7.14 DT_TO_<TYPE>—— ............................................................... 44
2.7.15 TOD_TO_<TYPE>—— .................................................................... 45
2.7.16 STRING_TO_<TYPE>—— .............................................................. 46
2.7.17 TRUNC—— .............................................................................................. 48
2.8 ......................................................................................................................... 49
2.8.1 ABS—— ........................................................................................................ 49
2.8.2 SQRT—— ...................................................................................................... 50
2.8.3 LN—— ....................................................................................................... 50
2.8.4 LOG—— .................................................................................................... 51
2.8.5 EXP—— ............................................................................................................ 51
2.8.6 SIN—— ............................................................................................................. 52
2.8.7 COS—— ............................................................................................................ 52
2.8.8 TAN—— ............................................................................................................ 53
2.8.9 ASIN—— ....................................................................................................... 53
2.8.10 ACOS—— ..................................................................................................... 54
2.8.11 ATAN—— ...................................................................................................... 54
2.8.12 EXPT—— .............................................................................................................. 55
2.9 ................................................................................................................................. 55
2.9.1 ADR—— ....................................................................................................... 55
2.9.2 ^—— ...................................................................................................... 56
2.9.3 BITADR—— ................................................................................................. 57
2.9.4 INDEXOF—— .................................................................................................. 57
2.9.5 SIZEOF—— ...................................................................................... 58
2.10 ....................................................................................................................................... 58
2.11 ........................................................................................................................... 59
2.12 Standard.lib ............................................................................................. 60
2.12.1 LEN—— ............................................................................................ 60

ABB PLC 2 AC500/Issue: 06.2012


2.12.2 LEFT—— .......................................................................................... 60
2.12.3 RIGHT—— ........................................................................................ 61
2.12.4 MID—— ............................................................................................ 62
2.12.5 CONCAT—— ........................................................................................ 63
2.12.6 INSERT—— .......................................................................................... 63
2.12.7 DELETE—— ............................................................................................. 64
2.12.8 REPLACE—— ...................................................................................... 64
2.12.9 FIND—— ............................................................................................... 65
2.13 BCD Util.lib ...................................................................................................... 65
2.13.1 BCD_TO_INT——BCD ........................................................................... 66
2.13.2 INT_TO_BCD—— BCD .......................................................................... 67
2.14 / Util.lib ...................................................................................................... 68
2.14.1 EXTRACT—— ............................................................................................. 68
2.14.2 PACK—— ...................................................................................................... 69
2.14.3 PUTBIT—— .................................................................................................. 70
2.14.4 UNPACK—— ........................................................................................................ 70
2.15 Util.lib ................................................................................................... 72
2.15.1 DERIVATIVE—— ..................................................................................................... 72
2.15.2 INTEGRAL—— ........................................................................................................ 73
2.15.3 STATISTICS_INT—— ...................................................................................... 75
2.15.4 STATISTICS_REAL—— .................................................................................. 76
2.15.5 VARIANCE—— ................................................................................................ 77
2.16 Util.lib ............................................................................................................... 78
2.16.1 P—— .............................................................................................................. 78
2.16.2 PD—— ................................................................................................... 79
2.16.3 PID—— ......................................................................................... 82
2.16.4 PID_FIXCYCLE—— .................................................................... 84
2.17 Util.lib ....................................................................................................... 86
2.17.1 BLINK—— ............................................................................................ 86
2.17.2 GEN—— ........................................................................................ 87
2.18 Util.lib ....................................................................................................... 89
2.18.1 CHARCURVE—— ............................................................................................ 89
2.18.2 RAMP_INT—— ................................................................................................ 91
2.18.3 RAMP_REAL—— ............................................................................................ 93
2.19 Util.lib ....................................................................................................... 93
2.19.1 HYSTERESIS—— .................................................................................................... 93
2.19.2 LIMITALARM—— ....................................................................................... 94
2.20 Standard.lib ..................................................................................................... 97
2.20.1 SR—— ............................................................................................... 97
2.20.2 RS—— ............................................................................................... 98

ABB PLC 3 AC500/Issue: 06.2012


2.21 Standard.lib ................................................................................................... 100
2.21.1 R_TRIG—— .................................................................................... 100
2.21.2 F_TRIG—— .................................................................................... 100
2.22 Standard.lib ........................................................................................................... 101
2.22.1 CTU—— ...................................................................................................... 101
2.22.2 CTD—— ...................................................................................................... 102
2.22.3 CTUD—— ........................................................................................... 103
2.23 Standard.lib ........................................................................................................... 105
2.23.1 TP—— ......................................................................................................... 105
2.23.2 TON—— .............................................................................................. 106
2.23.3 TOF—— .............................................................................................. 107
2.23.4 RTC—— .......................................................................................................... 110

A ................................................................................................................111
A.1 .................................................................................................................... 111
A.2 IEC ............................................................................................................ 113

ABB PLC 4 AC500/Issue: 06.2012


1 CoDeSys
CPU

1.1
CoDeSys FUN
FB

ADD
MOVE
AND
SHL
MAX
GT
REAL_TO_<TYPE>
ABS
ADR
SR
R_TRIG )
CTU
TON
BLINK
DERIVATIVE
PID

1.2
“ .lib” (Standard.lib) (Util.lib)
(Standard.lib)

1.3
CoDeSys

ABB PLC 5 AC500/Issue: 06.2012


4

1.
(W) “ (L)

” “ ”

ABB PLC 6 AC500/Issue: 06.2012


2.

“ ”

“Open” *.lib

ABB PLC 7 AC500/Issue: 06.2012


3.
“ ”

ABB PLC 8 AC500/Issue: 06.2012


2

2.1

2.1.1 ADD——

/ BYTE WORD DWORD SINT USINT INT UINT DINT


UDINT REAL TIME

LD

ST Var1:=7+2+4+7; * Var1 20*

LD 7
IL ADD 2,4,7
ST Var1 * Var1 20*

FBD

TIME TIME t#45s + t#50s


= t#1m35 s
MUL SUB DIV

2.1.2 MUL——

/ BYTE WORD DWORD SINT USINT INT UINT DINT


UDINT REAL

ABB PLC 9 AC500/Issue: 06.2012


LD

ST Var1:=7*2*4*7; * Var1 392*

LD 7
IL MUL 2,4,7
ST Var1 * Var1 392*

FBD

2.1.3 SUB——

/ BYTE WORD DWORD SINT USINT INT UINT DINT


UDINT REAL TIME TOD

LD

ST Var1:=7-2; * Var1 5*
LD 7
IL SUB 2
ST Var1 * Var1 5*

FBD

ABB PLC 10 AC500/Issue: 06.2012


TIME TIME t#1m35s -
t#50s = t#45s
TOD TOD TIME
TOD#23:40:30- TOD#00:30:20=T#1390m10s0ms ,

2.1.4 DIV——

/ BYTE WORD DWORD SINT USINT INT UINT DINT


UDINT REAL

LD

ST Var1:=8/2; * Var1 4*

LD 8
IL DIV 2
ST Var1 * Var1 4*

FBD

DIV CheckDivByte CheckDivWord CheckDivDWord


CheckDivReal 4.15

2.1.5 MOD——

/ BYTE WORD DWORD SINT USINT INT UINT DINT


UDINT

ABB PLC 11 AC500/Issue: 06.2012


LD

ST Var1:=9 MOD 2; * Var1 1*


LD 9
IL MOD 2
ST Var1 * Var1 1*

FBD

2.2
MOVE

/ BYTE WORD DWORD SINT USINT INT UINT DINT


UDINT REAL TIME DT BOOL STRING ARRAY

LD

ST Var1:=100; * Var1 100*

LD 100
IL MOVE
ST Var1 * Var1 100*

FBD

ABB PLC 12 AC500/Issue: 06.2012


2.3

2.3.1 AND——

/ BOOL BYTE WORD DWORD

LD

Var1:=2#1001_0011 AND 2#1000_1010;


ST
* Var1 2#10000010*

LD 2#1001_0011
IL AND 2#1000_1010
ST Var1 * Var1 2#10000010*

FBD

2.3.2 OR——

/ BOOL BYTE WORD DWORD

LD

Var1:=2#1001_0011 OR 2#1000_1010 ;
ST
* Var1 2#10011011*

ABB PLC 13 AC500/Issue: 06.2012


LD 2#1001_0011
IL OR 2#1000_1010
ST Var1 * Var1 2#10011011*

FBD

2.3.3 XOR——

/ BOOL BYTE WORD DWORD

LD

Var1:=2#1001_0011 XOR 2#1000_1010 ;


ST
* Var1 2#00011001*
LD 2#1001_0011
IL XOR 2#1000_1010
ST Var1 * Var1 2#00011001*

FBD

2.3.4 NOT——

/ BOOL BYTE WORD DWORD

ABB PLC 14 AC500/Issue: 06.2012


LD

Var1:= NOT 2#1001_0011 ;


ST
* Var1 2#01101100*
LD 2#1001_0011
IL NOT
ST Var1 * Var1 2#01101100*

FBD

2.4

2.4.1 SHL——
0
/ BYTE INT WORD DWORD SINT UINT

LD

Var1:=SHL(16#45,2); * Var1 16#14*


Var2:=SHL(16#45,2); * Var2 16#0114*
ST

Var1 Var2

LD 16#45
IL SHL 2
ST Var1 * Var1 16#14*

FBD

2.4.2 SHR——
0

ABB PLC 15 AC500/Issue: 06.2012


/ BYTE INT WORD DWORD SINT UINT

LD

Var1:=SHR(16#45,2); * Var1 16#11*


ST
Var2:=SHR(16#45,2); * Var2 16#0011*
LD 16#45
IL SHR 2
ST Var1 * Var1 16#11*

FBD

2.4.3 ROL——

/ BYTE INT WORD DWORD SINT UINT

LD

Var1:=ROL(16#45,2); * Var1 16#15*


Var2:= ROL (16#45,2); * Var2 16#0114*
ST
Var1 Var2
LD 16#45
IL
ROL 2

ABB PLC 16 AC500/Issue: 06.2012


ST Var1 * Var1 16#15*

FBD

2.4.4 ROR——

/ BYTE INT WORD DWORD SINT UINT

LD

Var1:=ROR(16#45,2) * Var1 16#51*


Var2:= ROR (16#45,2) * Var2 16#4011*
ST

Var1 Var2

LD 16#45
IL ROR 2
ST Var1 * Var1 16#51*

FBD

2.5

2.5.1 SEL——
FALSE
TRUE
OUT := SEL(G, IN0, IN1) G IN0 IN1

ABB PLC 17 AC500/Issue: 06.2012


G BOOL IN0 IN1

ABB PLC 18 AC500/Issue: 06.2012


LD

ST Var1:=SEL(TRUE,3,4); (* Var1 4 *)
LD TRUE
SEL 2,6
ST Var1 (* Var1 6*)
IL
LD FALSE
SEL 2,6
ST Var2 (* Var2 2*)

FBD

2.5.2 MAX——

OUT:=MAX(IN0, IN1) IN0 IN1 1 2


OUT
/ IN0, IN1 OUT

LD

ST Var1:=MAX(90,60); (* Var1 90 *)

ABB PLC 19 AC500/Issue: 06.2012


Var2:=MAX(40,MAX(90,60)); (* Var2 90 *)

LD 90
MAX 40
IL MAX 70
MAX 60
ST Var1 * Var1 90*

FBD

2.5.3 MIN——

OUT:=MIN(IN0, IN1) IN0 IN1 1 2


OUT
/ IN0 IN1 OUT

LD

Var1:=MIN(90,30); (* Var1 30 *)
ST
Var2:=MIN(MIN(90,30),60); (* Var2 30 *)

LD 90
MIN 30
IL MIN 40
MIN 70
ST Var1 * Var1 30*

FBD

2.5.4 LIMIT——

ABB PLC 20 AC500/Issue: 06.2012


OUT := LIMIT(Min, IN, Max)
/ IN OUT

LD

*11 5 10 *
ST Var1:=LIMIT(30,90,80); (* Var1 80 *)

LD 90
IL LIMIT 30 80
ST Var1 (* Var1 80*)

FBD

*11 5 10 *

2.5.5 MUX——

OUT:=MUX(K,IN0,…,INn) K IN0,…,INn
OUT K INk
/ IN0,…, INn OUT K BYTE
WORD DWORD SINT USINT INT UINT DINT UDINT

ABB PLC 21 AC500/Issue: 06.2012


LD

*2 30 30 *
ST Var1:=MUX(0,30,40,50,60,70,80); * Var1 30*
LD 0
IL MUX 30 40 50 60 70 80
ST Var1 * Var1 30*

FBD

*2 30 30*

2.6

2.6.1 GT——
TRUE
FALSE
/
BOOL BYTE WORD DWORD SINT USINT INT UINT
DINT UDINT REAL TIME DATE TOD DT STRING
BOOL

LD

* Var1 FALSE*
ST Var1:=20>30;

IL LD 20

ABB PLC 22 AC500/Issue: 06.2012


GT 30
ST Var1 * Var1 FALSE*

FBD
* Var1 FALSE*

2.6.2 LT——
TRUE
FALSE
/
BOOL BYTE WORD DWORD SINT USINT INT UINT
DINT UDINT REAL TIME DATE TOD DT STRING
BOOL

LD

* Var1 TRUE*
ST VAR1:=20<30; * Var1 TRUE*

LD 20
IL LT 30
ST Var1 * Var1 TRUE*

FBD
* Var1 TRUE*

2.6.3 GE——
TRUE
FALSE
/
BOOL BYTE WORD DWORD SINT USINT INT UINT
DINT UDINT REAL TIME DATE TOD DT STRING
BOOL

ABB PLC 23 AC500/Issue: 06.2012


ABB PLC 24 AC500/Issue: 06.2012
LD

* Var1 TRUE*
ST VAR1:=60>=40; * Var1 TRUE*

LD 60
IL GE 40
ST Var1 * Var1 TRUE*

FBD
* Var1 TRUE*

2.6.4 LE——
TRUE
FALSE
/
BOOL BYTE WORD DWORD SINT USINT INT UINT
DINT UDINT REAL TIME DATE TOD DT STRING
BOOL

LD

* Var1 TRUE*
ST VAR1:=20<=30; * Var1 TRUE*
LD 20
IL LE 30
ST Var1 * Var1 TRUE*

FBD
* Var1 TRUE*

ABB PLC 25 AC500/Issue: 06.2012


2.6.5 EQ——
TRUE
FALSE
/
BOOL BYTE WORD DWORD SINT USINT INT UINT
DINT UDINT REAL TIME DATE TOD DT STRING
BOOL

LD

* Var1 TRUE*
ST VAR1:=40=40; * Var1 TRUE*

LD 40
IL EQ 40
ST Var1 * Var1 TRUE*

FBD

* Var1 TRUE*

2.6.6 NE——
TRUE
FALSE
/
BOOL BYTE WORD DWORD SINT USINT INT UINT
DINT UDINT REAL TIME DATE TOD DT STRING
BOOL

ABB PLC 26 AC500/Issue: 06.2012


LD

* Var1 FALSE*
ST VAR1:=40<>40; * Var1 FALSE*

LD 40
IL NE 40
ST Var1 * Var1 FALSE*

FBD
* Var1 FALSE*

2.7
PowerPro 240

<TYPE1>_TO_<TYPE2>

INT BYTE DINT WORD


<TYPE>_TO_STRING
<TYPE>

4-7-1

ABB PLC 27 AC500/Issue: 06.2012


4-7-1
BOOL_TO_<TYPE> BYTE_TO_<TYPE> DATE_TO_<TYPE> DINT_TO_<TYPE>

DT_TO_<TYPE> DWORD_TO_<TYPE> INT_TO_<TYPE> WORD_TO_<TYPE>

REAL_TO_<TYPE> SINT_TO_<TYPE> STRING_TO_<TYPE> TIME_TO_<TYPE>

TOD_TO_<TYPE> UDINT_TO_<TYPE> UINT_TO_<TYPE> USINT_TO_<TYPE>

ABB PLC 28 AC500/Issue: 06.2012


2.7.1 BOOL_TO_<TYPE>——

/ 4-7-1
TRUE 1 FALSE 0
TRUE 'TRUE' FALSE
'FALSE'

LD

VarInt1:=BOOL_TO_INT(TRUE); (* 1*)
st1:=BOOL_TO_STRING(TRUE); (* 'TRUE'*)
ST time1:=BOOL_TO_TIME(TRUE); (* T#1ms*)
td:=BOOL_TO_TOD(TRUE); (* TOD#00:00:00.001*)

ABB PLC 29 AC500/Issue: 06.2012


date1:=BOOL_TO_DATE(TRUE); (* D#1970-01-01*)
datedt :=BOOL_TO_DT(TRUE); (* DT#1970-01-01-00:00:01*)

LD TRUE
BOOL_TO_INT
ST VarInt1 (* 1*)
LD TRUE
BOOL_TO_STRING
ST st1 (* 'TRUE'*)
LD TRUE
BOOL_TO_TIME
ST time1 (* T#1ms*)
IL LD TRUE
BOOL_TO_TOD
ST td (* TOD#00:00:00.001*)
LD TRUE
BOOL_TO_DATE
ST date1 (* D#1970-01-01*)
LD TRUE
BOOL_TO_DT
ST datedt (* DT#1970-01-01-00:00:01*)

FBD

2.7.2 BYTE_TO_<TYPE>——

/ 4-7-1
BYTE_TO_BOOL 0 TRUE 0
FALSE BYTE_TO_TIME BYTE_TO_TOD
BYTE_TO_DATE BYTE_TO_DT

ABB PLC 30 AC500/Issue: 06.2012


(* TRUE *)

(* 16# 00FF *)

LD (* T#255ms *)

(* DT#1970-01-01-00:04:15 *)

(* 255 *)

(* '255'*)
Varbyte1:=16#FF (*Varbyte1 *)
Varbool1:=BYTE_TO_BOOL(Varbyte1); (* TRUE *)
Varint1:=BYTE_TO_INT(Varbyte1); (* 16# FF *)
Vartime1:=BYTE_TO_TIME(Varbyte1); (* T#255ms *)
ST Vardt1:=BYTE_TO_DT(Varbyte1);
(* DT#1970-01-01-00:04:15 *)
Varreal1:=BYTE_TO_REAL(Varbyte1); (* 255 *)
Varstring1:=BYTE_TO_STRING(Varbyte1); (* '255'*)

ABB PLC 31 AC500/Issue: 06.2012


LD 16#FF
ST Varbyte1 (*Varbyte1 *)
LD Varbyte1
BYTE_TO_BOOL
ST Varbool1 (* TRUE *)
LD Varbyte1
BYTE_TO_INT
ST Varint1 (* 16# FF *)
LD Varbyte1
BYTE_TO_TIME
IL
ST Vartime1 (* T#255ms *)
LD Varbyte1
BYTE_TO_DT
ST Vardt1 (* DT#1970-01-01-00:04:15 *)
LD Varbyte1
BYTE_TO_REAL
ST Varreal1 (* 255 *)
LD Varbyte1
BYTE_TO_STRING
ST Varstring1 (* '255'*)

(* TRUE *)

(* 16# 00FF *)

(* T#255ms *)
FBD

(* DT#1970-01-01-00:04:15 *)

(* 255 *)

(* '255'*)

2.7.3 WORD_TO_<TYPE>——

/ 4-7-1
WORD_TO_BOOL 0 TRUE 0
FALSE WORD_TO_TIME WORD_TO_TOD

ABB PLC 32 AC500/Issue: 06.2012


WORD_TO_DATE WORD_TO_DT

LD

Varword1:=4863 (*Varword1 *)
Varusint1:=WORD_TO_USINT(Varword1); (* 255 *)
4863 16#12FF USINT
255 16#FF
ST
Vartime1:=WORD_TO_TIME(Varword1); (* T#4s863ms*)
Vardt1:=WORD_TO_DT(Varword1);
(* DT#1970-01-01-01:21:03 *)

LD 4863
ST Varword1 (*Varword1 *)
LD Varword1
WORD_TO_USINT
ST Varusint1 (* 255 *)
IL LD Varword1
WORD_TO_TIME
ST Vartime1 (* T#4s863ms*)
LD Varword1
WORD_TO_DT
ST Vardt1 (* DT#1970-01-01-01:21:03 *)

FBD

ABB PLC 33 AC500/Issue: 06.2012


2.7.4 DWORD_TO_<TYPE>——

/ 4-7-1
DWORD_TO_BOOL 0 TRUE 0
FALSE DWORD_TO_TIME DWORD_TO_TOD
DWORD_TO_DATE DWORD_TO_DT

LD

Varword1:=16#56FF (*Varword1 *)
Varusint1:=DWORD_TO_USINT(Vardword1); (* 255 *)
16#56FF 22271 USINT
255 16#FF
ST
Vartime1:=DWORD_TO_TIME(Vardword1); (* T#22s271ms*)
Vardt1:=DWORD_TO_DT(Vardword1);
(* DT#1970-01-01-06:11:11 *)
LD 16#56FF
ST Vardword1 (*Vardword1 *)
LD Vardword1
DWORD_TO_USINT
ST Varusint1 (* 255 *)
IL LD Vardword1
DWORD_TO_TIME
ST Vartime1 (* T#22s271ms*)
LD Vardword1
DWORD_TO_DT

ABB PLC 34 AC500/Issue: 06.2012


ST Vardt1 (* DT#1970-01-01-06:11:11 *)

FBD

2.7.5 SINT_TO_<TYPE>——

/ 4-7-1
SINT_TO_BOOL 0 TRUE 0 FALSE
SINT_TO_TIME SINT _TO_TOD
SINT_TO_DATE SINT _TO_DT

LD

Varsint1:=100 (*Varsint1 *)
ST Vardt1:=SINT_TO_DT(Varsint1); (* DT#1970-01-01-00:01:40 *)
Varreal1:=SINT_TO_REAL(Varsint1); (* 100 .0*)

LD 100
ST Varsint1 (*Varsint1 *)
LD Varsint1
IL SINT_TO_DT
ST Vardt1 (* DT#1970-01-01-00:01:40 *)
LD Varsint1
SINT_TO_REAL
ST Varreal1 (* Varrea1 100.0*)

FBD

ABB PLC 35 AC500/Issue: 06.2012


2.7.6 USINT_TO_<TYPE>——

/ 4-7-1
USINT_TO_BOOL 0 TRUE 0
FALSE USINT_TO_TIME USINT _TO_TOD
USINT_TO_DATE USINT _TO_DT

LD

Varusint1:=200 (*Varusint1 *)
Vardt1:=USINT_TO_DT(Varusint1);(* DT#1970-01-01-00:03:20 *)
ST
Varreal1:=USINT_TO_REAL(Varusint1); (* 200 .0*)

LD 200
ST Varusint1 (*Varusint1 *)
LD Varusint1
USINT_TO_DT
IL
ST Vardt1 (* DT#1970-01-01-00:03:20 *)
LD Varusint1
USINT_TO_REAL
ST Varreal1 (* Varreal1 200.0*)

FBD

2.7.7 INT_TO_<TYPE>——

/ 4-7-1

ABB PLC 36 AC500/Issue: 06.2012


INT_TO_BOOL 0 TRUE 0 FALSE
INT_TO_TIME INT _TO_TOD
INT_TO_DATE INT _TO_DT

LD

VarSINT1 := INT_TO_SINT(4223); (* VarSINT1 127 *)


ST 4223 16#107F SINT
127 16#7F

LD 2
IL INT_TO_REAL
ST VarREAL1 (* VarREAL1 2.0*)

FBD

2.7.8 UINT_TO_<TYPE>——

/ 4-7-1
UINT_TO_BOOL 0 TRUE 0 FALSE
UINT_TO_TIME UINT _TO_TOD
UINT_TO_DATE UINT _TO_DT

LD

ABB PLC 37 AC500/Issue: 06.2012


Varuint1:=6000;
Varusint1:=UINT_TO_USINT(Varuint1);
6000 16#1770 SINT
ST
112 16#70
Vartime1:=UINT_TO_TIME(Varuint1);
Vardt1:=UINT_TO_DT(Varuint1);
LD 6000
ST Varuint1 (*Varuint1 *)
LD Varuint1
UINT_TO_USINT
ST Varusint1 (* 112*)
IL LD Varuint1
UINT_TO_TIME
ST Vartime1 (* T#6s0ms*)
LD Varuint1
UINT_TO_DT
ST Vardt1 (* DT#1970-01-01-01:40:00 *)

FBD

2.7.9 DINT_TO_<TYPE>——

/ 4-7-1
DINT_TO_BOOL 0 TRUE 0 FALSE
DINT_TO_TIME DINT _TO_TOD
DINT_TO_DATE DINT _TO_DT

ABB PLC 38 AC500/Issue: 06.2012


ABB PLC 39 AC500/Issue: 06.2012
LD

Vardint1:=200000;
Varusint1:=DINT_TO_USINT(Vardint1); (* 64*)
200000 16#30D40 USINT
ST 64 16#40
Vartime1:=DINT_TO_TIME(Vardint1); (* T#3m20s0ms*)
Vardt1:=DINT_TO_DT(Vardint1); (* DT#1970-01-03-07:33:20 *)
LD 200000
ST Vardint1 (*Vardint1 *)
LD Vardint1
DINT_TO_USINT
ST Varusint1 (* 64*)
IL LD Vardint1
DINT_TO_TIME
ST Vartime1 (* T#3m20s0ms*)
LD Vardint1
DINT_TO_DT
ST Vardt1 (* DT#1970-01-03-07:33:20 *)

FBD

2.7.10 UDINT_TO_<TYPE>——

/ 4-7-1
UDINT_TO_BOOL 0 TRUE 0
FALSE UDINT_TO_TIME UDINT _TO_TOD
UDINT_TO_DATE UDINT _TO_DT

ABB PLC 40 AC500/Issue: 06.2012


LD

Varudint1:=300000;
Varusint1:= UDINT_TO_USINT(Varudint1); (* 224*)
300000 16#493E0 USINT
ST 224 16#E0
Vartime1:=UDINT_TO_TIME(Varudint1); (* T#5m0s0ms*)
Vardt1:=UDINT_TO_DT(Varudint1);
(* DT#1970-01-04-11:20:00 *)

LD 300000
ST Varudint1 (*Varudint1 *)
LD Varudint1
UDINT_TO_USINT
ST Varusint1 (* 224*)
IL LD Varudint1
UDINT_TO_TIME
ST Vartime1 (* T#5m0s0ms*)
LD Varudint1
UDINT_TO_DT
ST Vardt1 (* DT#1970-01-04-11:20:00 *)

FBD

ABB PLC 41 AC500/Issue: 06.2012


2.7.11 REAL_TO_<TYPE>——

/ 4-7-1
REAL_TO_BOOL 0 TRUE 0
FALSE REAL_TO_TIME REAL_TO_TOD
REAL_TO_DATE REAL_TO_DT

LD

VarINT1:= REAL_TO_INT(1.5); (* VarINT1 2*)


VarINT2:= REAL_TO_INT(1.4); (* VarINT2 1*)
ST
VarINT3:= REAL_TO_INT(-1.5); (* VarINT3 -2*)
VarINT4:= REAL_TO_INT(-1.4); (* VarINT4 -1*)

LD 2.7
IL REAL_TO_INT
ST VarINT1 (* VarINT1 3*)

FBD

2.7.12 TIME_TO_<TYPE>——
DWORD
TIME_OF_DAY 00 00
/ 4-7-1
TIME_TO_BOOL 0 TRUE 0
FALSE

ABB PLC 42 AC500/Issue: 06.2012


LD

Varstr:=TIME_TO_STRING(T#12ms); (* ‘T#12ms’*)
ST
Vardword:=TIME_TO_DWORD(T#5m); (* 300000*)
LD T#12ms
TIME_TO_STRING
ST Varstr (* ‘T#12ms’*)
IL
LD T#300000ms
TIME_TO_DWORD
ST Vardword (* 300000*)

FBD

2.7.13 DATE_TO_<TYPE>——
1970
1 1
/ 4-7-1
DATE_TO_BOOL 0 TRUE 0
FALSE

ABB PLC 43 AC500/Issue: 06.2012


LD

VarStr1:=DATE_TO_STRING(D#1970-01-01);
(* 'D#1970-01-01' *)
VarInt1:=DATE_TO_INT(D#1970-01-15); (* 29952*)
ST
D#1970-01-15 14×24×3600=1209600=16#127500 INT
16#7500, 29952

LD D#1970-01-01
DATE_TO_STRING
ST VarStr1 (* ‘TRUE’*)
IL
LD D#1970-01-15
DATE_TO_INT
ST VarInt1 (* 29952*)

FBD

2.7.14 DT_TO_<TYPE>——

1970 1 1
/ 4-7-1
DT_TO_BOOL 0 TRUE 0 FALSE

LD

ABB PLC 44 AC500/Issue: 06.2012


Varbyte:=DT_TO_BYTE(DT#1970-01-15-05:05:05);
(* Varbyte 129*)
DT#1970-01-15-05:05:05
(((14*24+5)*60+5)*60+5)=1227905=16#12BC81 BYTE 24
ST
8 16#81= 129
Varstr:=DT_TO_STRING(DT#1998-02-13-14:20);
(* Varstr ‘DT#1998-02-13-14:20’)

LD DT#1970-01-15-05:05:05
DT_TO_BYTE
ST Varbyte (* Varbyte 129*)
IL
LD DT#1998-02-13-14:20
DT_TO_STRING
ST Varstr (* Varstr ‘DT#1998-02-13-14:20’)

FBD

2.7.15 TOD_TO_<TYPE>——

/ 4-7-1
TOD_TO_BOOL 0 TRUE 0
FALSE

LD

ABB PLC 45 AC500/Issue: 06.2012


Vartod1:=TOD#10:11:40; (*Vartod1 *)
Varusint1:=TOD_TO_USINT(Vartod1); (* 96*)
Vartime1:=TOD_TO_TIME(Vartod1); (* T#611m40s0ms*)
ST Vardt1:=TOD_TO_DT(Vartod1);
(* DT#1970-01-01-10:11:40*)
Varreal1:=TOD_TO_REAL(Vartod1); (* 3.67e+007*)

LD TOD#10:11:40
ST Vartod1 (*Vartod1 *)
LD Vartod1
TOD_TO_USINT
ST Varusint1 (* 96*)
LD Vartod1
TOD_TO_TIME
IL
ST Vartime1 (* T#611m40s0ms*)
LD Vartod1
TOD_TO_DT
ST Vardt1 (* DT#1970-01-01-10:11:40*)
LD Vartod1
TOD_TO_REAL
ST Varreal1 (* 3.67e+007*)

FBD

2.7.16 STRING_TO_<TYPE>——

0
/ 4-7-1

ABB PLC 46 AC500/Issue: 06.2012


ABB PLC 47 AC500/Issue: 06.2012
LD

Varword:=STRING_TO_WORD('Hollysys'); (* 0*)
ST
Vartime:=STRING_TO_TIME('T#127ms'); (* T#127ms*)

LD 'Hollysys'
STRING_TO_WORD
ST Varword (* Varword 0*)
IL
LD 'T#127ms'
STRING_TO_TIME
ST Vartime (* Vartime T#127ms*)

FBD

2.7.17 TRUNC——

/ REAL INT WORD DWORD

LD

Varint1:=TRUNC(1.9); (* Varint1 1*)


ST
Varint2:=TRUNC(-1.4); (* Varint2 -1*)

ABB PLC 48 AC500/Issue: 06.2012


LD 1.9
TRUNC
ST Varint1 (* Varint1 1*)
IL
LD -1.4
TRUNC
ST Varint2 (* Varint2 -1*)

FBD

REAL_TO_INT

2.8

2.8.1 ABS——

INT INT WORD DWORD DINT UINT REAL


REAL REAL
BYTE INT BYTE WORD DWORD DINT UINT REAL
WORD WORD DWORD DINT REAL
DWORD DWORD DINT REAL
SINT INT BYTE WORD DWORD DINT UINT REAL
USINT INT BYTE WORD DWORD DINT UINT REAL
UINT WORD DWORD DINT UINT REAL
DINT DWORD DINT REAL
UDINT DWORD DINT UDINT REAL

LD

ST i:=ABS(-2); (* Varint1 2*)


LD -2
IL ABS
ST Varint1 (* Varint1 2*)

ABB PLC 49 AC500/Issue: 06.2012


FBD

2.8.2 SQRT——

/
BYTE WORD DWORD INT DINT REAL SINT USINT
UINT UDINT REAL

LD

ST Var1:=SQRT(10); (* Var1 3.162278*)


LD 10
IL SQRT
ST Var1 (* Var1 3.162278*)

FBD

2.8.3 LN——

/
BYTE WORD DWORD INT DINT REAL SINT USINT
UINT UDINT REAL

LD

ST Var1:=LN(45) (* Var1 3.806663*)


LD 45
IL LN
ST Var1 (* Var1 3.806663*)

ABB PLC 50 AC500/Issue: 06.2012


FBD

2.8.4 LOG——
10
/
BYTE WORD DWORD INT DINT REAL SINT USINT
UINT UDINT REAL

LD

ST Var1:=LOG(314.5); (* Var1 2.497621 *)


LD 314.5
IL LOG
ST Var1 (* Var1 2.497621 *)

FBD

2.8.5 EXP——
y ex x y
/
BYTE WORD DWORD INT DINT REAL SINT USINT
UINT UDINT REAL

LD

ST Var1:=EXP(2); * Var1 7.389056*


IL LD 2

ABB PLC 51 AC500/Issue: 06.2012


EXP
ST Var1 * Var1 7.389056*

FBD

2.8.6 SIN——

(rad ) *
180 o
/ BYTE WORD DWORD INT DINT
REAL SINT USINT UINT UDINT REAL

LD

ST Var1:=SIN(1.5); (* Var1 0.997495 *)


LD 1.5
IL SIN
ST Var1 (* Var1 0.997495 *)

FBD

2.8.7 COS——

(rad ) *
180 o
/ BYTE WORD DWORD INT DINT
REAL SINT USINT UINT UDINT REAL

LD

ST Var1:=COS(0.5); (* Var1 0.8775826 *)

ABB PLC 52 AC500/Issue: 06.2012


LD 0.5
IL COS
ST Var1 (* Var1 0.8775826 *)

FBD

2.8.8 TAN——

(rad ) *
180 o
/ BYTE WORD DWORD INT DINT
REAL SINT USINT UINT UDINT REAL

LD

ST Var1:=TAN(0.5); (* Var1 0.5463025 *)


LD 0.5
IL TAN
ST Var1 (* Var1 0.5463025 *)

FBD

2.8.9 ASIN——

/
BYTE WORD DWORD INT DINT REAL SINT USINT
UINT UDINT REAL

LD

ABB PLC 53 AC500/Issue: 06.2012


ST Var1:=ASIN(0.5); (* Var1 0.5235988 *)
LD 0.5
IL ASIN
ST Var1 (* Var1 0.5235988 *)

FBD

2.8.10 ACOS——

/
BYTE WORD DWORD INT DINT REAL SINT USINT
UINT UDINT REAL

LD

ST Var1:=ACOS(0.5); (* Var1 1.047198 *)


LD 0.5
IL ACOS
ST Var1 (* Var1 1.047198 *)

FBD

2.8.11 ATAN——

/ BYTE WORD DWORD INT DINT


REAL SINT USINT UINT UDINT REAL

ABB PLC 54 AC500/Issue: 06.2012


LD

ST Var1:=ATAN(0.5); (* Var1 0.4636476 *)


LD 0.5
IL ATAN
ST Var1 (* Var1 0.4636476 *)

FBD

2.8.12 EXPT——
1 2
/ BYTE WORD DWORD INT DINT
REAL SINT USINT UINT UDINT REAL

LD

ST Var1:=EXPT(7,2); (* Var1 49 *)
LD 7
IL EXPT 2
ST Var1 (* Var1 49 *)

FBD

2.9

2.9.1 ADR——

ABB PLC 55 AC500/Issue: 06.2012


LD

ST VarAddress:= ADR(Var1);

LD Var1
IL ADR
ST VarAddress

FBD

2.9.2 ^——

“^

LD

ST VarAddress:= ADR(Var1);
Var2:= VarAddress^; (* Var2 100 *)
LD Var1
ADR
IL ST VarAddress
LD VarAddress^
ST Var2
FBD

ABB PLC 56 AC500/Issue: 06.2012


2.9.3 BITADR——
BOOL MX300.7 300*8+7=2407

LD

ST Bitadr1:=BITADR(Varbool1)
LD Varbool1
IL BITADR
ST Bitadr1

FBD

2.9.4 INDEXOF——
POU POU POU
INT

LD

POU2
ST Var1:=INDEXOF(POU2); * Var1 38*

ABB PLC 57 AC500/Issue: 06.2012


LD POU2
IL INDEXOF
ST Var1 * Var1 38*

FBD
* Var1 38*

2.9.5 SIZEOF——

LD

ST Var1:=SIZEOF(arr1); * Var1 10*

LD arr1
IL SIZEOF
ST Var1 * Var1 10*

FBD

2.10
CAL
IL CAL
/ /

Inst Par1 0 Par2 TRUE IL

CAL Inst(Par1:=0, Par2:=TRUE)

ABB PLC 58 AC500/Issue: 06.2012


2.11
INI

: <bool-Variable> := INI(<FB-instance, TRUE|FALSE)


FB-instance Par1=FB-instance Par2=
TRUE|FALSE

PLC_PRG

funb FB

PLC_PRG

LD funb

ABB PLC 59 AC500/Issue: 06.2012


var1 var2 var3 4 8 10
VarBOOL2 INI 1 2 3

2.12 Standard.lib

2.12.1 LEN——

/ STRING INT

LD

ST Var1INT1 := LEN (‘Hollysys’); (* Var1INT1 8*)


LD ‘Hollysys’
IL LEN
ST VarINT1 (* Var1INT1 8*)

FBD

2.12.2 LEFT——

LEFT STR,SIZE STR STRING SIZE


INT STRING

LD

ST VarSTRING := LEFT (‘Hollysys’,3); (* ' Hol '*)

ABB PLC 60 AC500/Issue: 06.2012


LD ' Hollysys '
IL LEFT 3
ST VarSTRING (* ' Hol '*)

FBD

2.12.3 RIGHT——

RIGHT STR,SIZE STR STRING


SIZE INT STRING

ABB PLC 61 AC500/Issue: 06.2012


LD

ST VarSTRING := RIGHT(‘Hollysys’,3); (* ' sys '*)


LD ' Hollysys '
IL RIGHT 3
ST VarSTRING (* ' sys '*)

FBD

2.12.4 MID——

MID(STR,LEN,POS) STR STRING


LEN POS INT POS LEN
STRING

LD

ST VarSTRING:= MID(‘Hollysys’,2,4); (* ‘ly’ *)


LD ‘Hollysys’
IL MID 2,4
ST VarSTRING (* ‘ly’ *)

FBD

ABB PLC 62 AC500/Issue: 06.2012


2.12.5 CONCAT——
STRING

LD

ST VarSTRING := CONCAT ('Holly', 'sys'); (* 'Hollysys'*)


LD 'Holly'
IL CONCAT ‘sys’
ST VarSTRING (* 'Hollysys'*)

FBD

2.12.6 INSERT——

INSERT(STR1,STR2,POS) STR1 STR2 STRING POS


INT STR2 STR1 POS STRING

LD

ST VarSTRING := INSERT ('Hoysys', ‘ll’,2); (* 'Hollysys'*)


LD 'Hoysys'
IL INSERT ‘ll’,2
ST VarSTRING (* 'Hollysys'*)

ABB PLC 63 AC500/Issue: 06.2012


FBD

2.12.7 DELETE——

DELETE(STR,LEN,POS) STR STRING LEN


POS INT POS LEN
STRING

LD

ST VarSTRING := DELETE ('Hollysys',3,6); (* 'Holly'*)


LD 'Hollysys'
IL DELETE 3,6
ST VarSTRING (* 'Holly'*)

FBD

2.12.8 REPLACE——

REPLACE(STR1,STR2,L,P) STR1 STR2 STRING


L P INT STR2 STR1 P L
STRING

ABB PLC 64 AC500/Issue: 06.2012


LD

VarSTRING:= REPLACE ('HOLLYSYS', 'iAS',4,5);


ST
(* 'HOLLiAS'*)
LD 'HOLLYSYS'
IL REPLACE 'iAS', 4,5
ST VarSTRING (* 'HOLLiAS'*)

FBD

2.12.9 FIND——

FIND(STR1,STR2) STR1 STR2 STRING


INT STR1 STR2
STR1
0

LD

ST VarINT1 := FIND ('HOLLYSYS', 'SYS'); (* 6*)


LD 'HOLLYSYS'
IL FIND 'SYS'
ST VarINT1 (* 6*)

FBD

2.13 BCD Util.lib


BCD 0 99 4 4-7

ABB PLC 65 AC500/Issue: 06.2012


0-3 BCD 16 BCD 0-99
16 0-FF
BCD 4 BCD
59 BCD 0101 1001 2#111011 51 BCD
5 0101 1 0001 51 BCD 0101 0001

2.13.1 BCD_TO_INT——BCD
BCD INT
/
B BYTE BCD
BCD 49 2#100 1001 10#73 16#49
2#100 1001 10#73 16#49
INT BCD BCD -1

LD

Varint1:=BCD_TO_INT(73); (* 49 *)
ST Varint2:=BCD_TO_INT(151); (* 97*)
Varint3:=BCD_TO_INT(15); (* -1 BCD *)
LD 73
BCD_TO_INT
ST Varint1 (* 49 *)
LD 151
IL BCD_TO_INT
ST Varint2 (* 97*)

LD 15
BCD_TO_INT

ABB PLC 66 AC500/Issue: 06.2012


ST Varint3 (* -1 BCD *)

FBD

2.13.2 INT_TO_BCD—— BCD


BCD BCD 255
/
I INT 49 49
BYTE BCD 49 BCD 2#100 1001
2#100 1001 10#73 16#49

LD

Varbyte1:=INT_TO_BCD(49); (* 73*)
ST Varbyte2:= INT_TO_BCD(97); (* 151*)
Varbyte3:= INT_TO_BCD(100); (* 255*)
LD 49
INT_TO_BCD
ST Varbyte1 (* 73*)
IL
LD 97
INT_TO_BCD
ST Varbyte2 (* 151*)

ABB PLC 67 AC500/Issue: 06.2012


LD 100
INT_TO_BCD
ST Varbyte3 (* 255*)

FBD

2.14 / Util.lib

2.14.1 EXTRACT——
X N N=0,1...
/
X DWORD N BYTE BOOL

LD

(* FLAG1=TRUE FLAG2=TRUE *)
FLAG1:=EXTRACT(X:=81, N:=4);
(* TRUE 81 1010001 1*)
ST
FLAG2:=EXTRACT(X:=33, N:=0);
(* TRUE 33 100001 0 1*)
LD 81
EXTRACT 4
ST FLAG1
(* TRUE 81 1010001 1*)
IL
LD 33
EXTRACT 0
ST FLAG2
(* TRUE 33 100001 0 1*)

ABB PLC 68 AC500/Issue: 06.2012


(* FLAG1=TRUE *)
LD

(* FLAG2=TRUE *)

2.14.2 PACK——
B0 B1 …… B7
UNPACK
/
B0 B1 …… B7 BOOL BYTE

LD

Varbyte1:= PACK(0,1,0,1,1,0,1,0); (* 2#01011010*)


ST
LD FALSE
IL PACK TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE
ST Varbyte1 (* 2#01011010*)

FBD

ABB PLC 69 AC500/Issue: 06.2012


2.14.3 PUTBIT——
X N N=0,1... B X
/
X DWORD N BYTE B BOOL DWORD

LD

Var2:=38; (* 100110*)
ST
Var1:=PUTBIT(Var2,4,TRUE); (* 54 = 2#110110*)

LD 38 (* 100110*)
IL PUTBIT 4,TRUE
ST Var1 (* 54 = 2#110110*)

FBD

2.14.4 UNPACK——
B 8 BOOL B0,…,B7 PACK

/
BYTE B0 B1 …… B7 BOOL

ABB PLC 70 AC500/Issue: 06.2012


LD

UP(B:=2#10101010);
Varbool0:=UP.B0;
Varbool1:=UP.B1;
Varbool2:=UP.B2;
ST Varbool3:=UP.B3;
Varbool4:=UP.B4;
Varbool5:=UP.B5;
Varbool6:=UP.B6;
Varbool7:=UP.B7;
CAL UP(B := 2#10101010)
LD UP.B1
ST Varbool1
LD UP.B2
ST Varbool2
LD UP.B3
IL ST Varbool3
LD UP.B4
ST Varbool4
LD UP.B5
ST Varbool5
LD UP.B6
ST Varbool6

ABB PLC 71 AC500/Issue: 06.2012


LD UP.B7
ST Varbool7
LD UP.B0
ST Varbool0

FBD

2.15 Util.lib

2.15.1 DERIVATIVE——
DERIVATIVE

3 * [ IN (k ) IN (k 3)] IN (k 1) IN (k 2)
OUT
3 * TM (k 2) 4 * TM (k 1) 3 * TM (k )
k-3 k-2 k-1 k

IN REAL
TM DWORD
RESET BOOL TRUE

OUT REAL

ABB PLC 72 AC500/Issue: 06.2012


LD

DERIVATIVEInst (IN:=Varint1,TM:=100,RESET:=VarBOOL1);
ST Varreal1:=DERIVATIVEInst.OUT;
CAL DERIVATIVEInst(IN := Varint1, TM := 100, RESET := VarBOOL1)
IL LD DERIVATIVEInst.OUT
ST Varreal1

FBD

2.15.2 INTEGRAL——

A(k ) A( k 1) TM * IN (k 1)
B(k ) B (k 1) TM * IN ( k )

ABB PLC 73 AC500/Issue: 06.2012


A( k ) B (k ) k-1 k
OUT (k )
2

IN REAL
TM DWORD
RESET BOOL TRUE

OUT REAL
OVERFLOW BOOL TRUE

LD

INTEGRALInst(IN := Varint1, TM := 100, RESET := VarBOOL1);


ST Varreal1:=INTEGRALInst.OUT;
CAL INTEGRALInst(IN := Varint1, TM := 100, RESET := VarBOOL1)
IL LD INTEGRALInst.OUT
ST Varreal1

FBD

ABB PLC 74 AC500/Issue: 06.2012


2.15.3 STATISTICS_INT——

IN INT
RESET BOOL TRUE

MN INT
MX INT
AVG INT

LD

STATISTICS_INTInst(IN := Varint1, RESET := VarBOOL1);


ST Varint3:=STATISTICS_INTInst.MX;

ABB PLC 75 AC500/Issue: 06.2012


Varint4:=STATISTICS_INTInst.AVG;
Varint2:=STATISTICS_INTInst.MN;
CAL STATISTICS_INTInst(IN := Varint1, RESET := VarBOOL1)
LD STATISTICS_INTInst.MX
ST Varint3
IL LD STATISTICS_INTInst.AVG
ST Varint4
LD STATISTICS_INTInst.MN
ST Varint2

FBD

2.15.4 STATISTICS_REAL——

IN REAL
RESET BOOL TRUE

MN REAL
MX REAL
AVG REAL

ABB PLC 76 AC500/Issue: 06.2012


LD

STATISTICS_REALInst(IN :=Varreal1,RESET:=VarBOOL1);
Varreal3:=STATISTICS_REALInst.MX;
ST Varreal4:=STATISTICS_REALInst.AVG;
Varreal2:=STATISTICS_REALInst.MN;
CAL STATISTICS_REALInst(IN := Varreal1, RESET := VarBOOL1)
LD STATISTICS_REALInst.MX
ST Varreal3

IL LD STATISTICS_REALInst.AVG
ST Varreal4
LD STATISTICS_REALInst.MN
ST Varreal2

FBD

STATISTICS_INT REAL

2.15.5 VARIANCE——

IN REAL
RESET BOOL TRUE

OUT REAL

ABB PLC 77 AC500/Issue: 06.2012


LD

VARIANCEInst(IN := Varreal1, RESET := VarBOOL1);


ST Varreal2:=VARIANCEInst.OUT;
CAL VARIANCEInst(IN := Varreal1, RESET := VarBOOL1)
IL LD VARIANCEInst.OUT
ST Varreal2

FBD

2.16 Util.lib

2.16.1 P——

OUT=ACTUAL+ DESIRED-ACTUAL *KP


/
ACTUAL DESIRED KP REAL
OUT REAL

ABB PLC 78 AC500/Issue: 06.2012


ACTUAL REAL
DESIRED REAL
KP REAL

OUT REAL

LD

PInst(ACTUAL := Var1, DESIRED := 50, KP := 0.5);


ST Var2:=PInst.OUT;
CAL PInst(ACTUAL := Var1, DESIRED := 50, KP := 0.5)
IL LD PInst.OUT
ST Var2

FBD

2.16.2 PD——

SET _ POINT ACTUAL

Y KP * ( TV * ) Y _ OFFSET
t

ABB PLC 79 AC500/Issue: 06.2012


ACTUAL REAL
SET_POINT REAL
KP REAL
TV REAL s
Y_MANUAL REAL MANUAL=TRUE Y= Y_MANUAL
Y_OFFSET REAL
Y_MIN REAL
Y_MAX REAL
TRUE FALSE
MANUAL BOOL

TRUE
RESET BOOL
FALSE

Y REAL
TRUE
LIMITS_ACTIVE BOOL
Y_MIN Y_MAX

ABB PLC 80 AC500/Issue: 06.2012


LD

PDInst(ACTUAL := Var1, SET_POINT := 100, KP := 0.5, TV := 10,


Y_MANUAL := 110, Y_OFFSET := 10, Y_MIN := 50,
ST Y_MAX := 150, MANUAL := FALSE, RESET := FALSE);
Varbool1:=PDInst.LIMITS_ACTIVE;
Var2:=PDInst.Y;
CAL PDInst(ACTUAL := Var1, SET_POINT := 100, KP := 0.5,
TV := 10, Y_MANUAL := 110, Y_OFFSET := 10, Y_MIN := 50,
Y_MAX := 150, MANUAL := FALSE, RESET := FALSE)
IL LD PDInst.LIMITS_ACTIVE
ST Varbool1
LD PDInst.Y
ST Var2

FBD

ABB PLC 81 AC500/Issue: 06.2012


2.16.3 PID——
TV=0 PID PI

1
Y KP * ( * ( t )dt TV * ) Y _ OFFSET
TN t
SET _ POINT ACTUAL

( t )dt
t

ACTUAL REAL
SET_POINT REAL
KP REAL
TN REAL s
TV REAL s
MANUAL=TRUE
Y_MANUAL REAL
Y= Y_MANUAL
Y_OFFSET REAL
Y_MIN REAL
Y_MAX REAL
TRUE FALSE
MANUAL BOOL

ABB PLC 82 AC500/Issue: 06.2012


TRUE
RESET BOOL
FALSE

Y REAL
TRUE
LIMITS_ACTIVE BOOL
Y_MIN Y_MAX
OVERFLOW BOOL TRUE

LD

PIDInst(ACTUAL := Var1, SET_POINT := 100, KP := 0.5, TN := 50,


TV := 10, Y_MANUAL := 110, Y_OFFSET := 10, Y_MIN := 50,
Y_MAX := 150, MANUAL := FALSE, RESET := FALSE);
ST Varbool1:=PIDInst.LIMITS_ACTIVE;
Varbool2:=PIDInst.OVERFLOW;
Var2:=PIDInst.Y;
CAL PIDInst(ACTUAL := Var1, SET_POINT := 100, KP := 0.5, TN := 50, TV := 10,
Y_MANUAL := 110, Y_OFFSET := 10, Y_MIN := 50, Y_MAX := 150, MANUAL :=
FALSE, RESET := FALSE)
IL LD PIDInst.LIMITS_ACTIVE
ST Varbool1
LD PIDInst.OVERFLOW
ST Varbool2

ABB PLC 83 AC500/Issue: 06.2012


LD PIDInst.Y
ST Var2

FBD

2.16.4 PID_FIXCYCLE——
PID
CYCLE CYCLE REAL
PID

ABB PLC 84 AC500/Issue: 06.2012


LD

PIDInst(ACTUAL := Var1, SET_POINT := 100, KP := 0.5,


TN := 50, TV := 10, Y_MANUAL := 110, Y_OFFSET := 10,
Y_MIN := 50, Y_MAX := 150, MANUAL := FALSE,

ST RESET := FALSE, CYCLE := 2);


Varbool1:=PIDInst.LIMITS_ACTIVE;
Varbool2:=PIDInst.OVERFLOW;
Var2:= PIDInst.Y;
CAL PIDInst(ACTUAL := Var1, SET_POINT := 100, KP := 0.5,
TN := 50, TV := 10, Y_MANUAL := 110, Y_OFFSET := 10,
Y_MIN := 50, Y_MAX := 150, MANUAL := FALSE, RESET := FALSE, CYCLE := 2)
LD PIDInst.LIMITS_ACTIVE
IL ST Varbool1
LD PIDInst.OVERFLOW
ST Varbool2
LD PIDInst.Y
ST Var2

FBD

PID

ABB PLC 85 AC500/Issue: 06.2012


2.17 Util.lib

2.17.1 BLINK——

TIMEHIGH TIMELOW

ENABLE BOOL TRUE


TIMELOW TIME
TIMEHIGH TIME

OUT BOOL

LD

BLINKInst(TIMELOW := T#5s,TIMEHIGH := T#2s);


ST Varbool1:=BLINKInst.OUT;
CAL BLINKInst(TIMELOW := T#5s,TIMEHIGH := T#2s)
IL LD BLINKInst.OUT
ST Varbool1

FBD

ABB PLC 86 AC500/Issue: 06.2012


OUT 4-20-1

4-20-1

2.17.2 GEN——

MODE TRIANGLE
TRIANGLE_POS SAWTOOTH_RISE
SAWTOOTH_FALL RECTANGLE
SINUS COSINUS
TRIANGLE
TRIANGLE_POS
MODE GEN_MODE
SAWTOOTH_RISE
SAWTOOTH_FALL
RECTANGLE
SINUS
COSINU
BASE TRUE
BASE BOOL BASE FALSE

PERIOD TIME
CYCLES INT
AMPLITUDE INT
RESET=TRUE
RESET BOOL
0

OUT INT

ABB PLC 87 AC500/Issue: 06.2012


LD

GENInst(MODE:=SINUS, BASE:=TRUE, PERIOD:=T#3s, CYCLES:=2,


AMPLITUDE:=10, RESET:=FALSE);
ST
Var1:=GENInst.OUT;
CAL GENInst(MODE:=SINUS, BASE:=TRUE, PERIOD:=T#3s,
CYCLES:=2, AMPLITUDE:=10, RESET:=FALSE)
IL
LD GENInst.OUT
ST Var1

FBD

MODE 4-20-2

ABB PLC 88 AC500/Issue: 06.2012


4-20-2

2.18 Util.lib

2.18.1 CHARCURVE——
POINT P[0..N-1] XY IN
X OUT Y

IN INT X
N BYTE 2 N 11
ARRAY[0..10]
P XY
OF POINT

ABB PLC 89 AC500/Issue: 06.2012


OUT INT Y
ERR=1 P[0]..P[N-1]
X
ERR=2 IN P[0].X
P[N-1].X
ERR BYTE X
OUT IN
P[0].Y P[N-1].Y

ERR=4 N 2 11
ARRAY[0..10]
P N
OF POINT

LD

CHARCURVEInst(IN := Var1, N := 11, P := KL);

ST Varerr:=CHARCURVEInst.ERR;
Varout:=CHARCURVEInst.OUT;
CAL CHARCURVEInst(IN := Var1, N := 11, P := KL)
LD CHARCURVEInst.ERR
IL ST Varerr
LD CHARCURVEInst.OUT
ST Varout

FBD

4-21-1
KL IN X OUT Y

ABB PLC 90 AC500/Issue: 06.2012


4-21-1

2.18.2 RAMP_INT——

IN INT OUT

OUT
TIMEBASE
ASCEND INT
TIMEBASE
DESCEND INT
TIMEBASE TIME
TRUE RAMP_INT
RESET BOOL

OUT INT

ABB PLC 91 AC500/Issue: 06.2012


LD

RAMP_INTInst(IN := Var1, ASCEND := 5, DESCEND := 2,


ST TIMEBASE := T#1000ms, RESET := FALSE);
Var2:=RAMP_INTInst.OUT;
CAL RAMP_INTInst(IN := Var1, ASCEND := 5, DESCEND := 2,
TIMEBASE := T#1000ms, RESET := FALSE)
IL
LD RAMP_INTInst.OUT
ST Var2

FBD

IN 4-21-2

4-21-2

ABB PLC 92 AC500/Issue: 06.2012


2.18.3 RAMP_REAL——

IN REAL OUT

OUT
TIMEBASE
ASCEND REAL
TIMEBASE
DESCEND REAL
TIMEBASE TIME
TRUE RAMP_INT
RESET BOOL

OUT REAL

RAMP_INT

2.19 Util.lib

2.19.1 HYSTERESIS——
INT IN HIGH LOW IN
LOW OUT TRUE IN HIGH OUT TRUE
FALSE IN LOW OUT FALSE TRUE IN
HIGH OUT FALSE

IN INT
HIGH INT
LOW INT

TRUE
OUT BOOL
FALSE

ABB PLC 93 AC500/Issue: 06.2012


LD

HYSTERESISInst(IN := VarIN, HIGH := 60, LOW := 30);


ST Varool1:=HYSTERESISInst.OUT;
CAL HYSTERESISInst(IN := VarIN, HIGH := 60, LOW := 30)
IL LD HYSTERESISInst.OUT
ST Varool1

FBD

4-22-1

4-22-1

2.19.2 LIMITALARM——
IN HIGH O TRUE U IL FALSE IN
LOW U TRUE O IL FALSE IN LOW HIGH

ABB PLC 94 AC500/Issue: 06.2012


IL TRUE O U FALSE

ABB PLC 95 AC500/Issue: 06.2012


IN INT
HIGH INT
LOW INT

O BOOL
U BOOL
IL BOOL

LD

LIMITALARMInst(IN := Var1, HIGH := 60, LOW := 30);


Varbool2:=LIMITALARMInst.U;
ST Varbool3:= LIMITALARMInst.IL;
Varbool1:= LIMITALARMInst.O;
CAL LIMITALARMInst(IN := Var1, HIGH := 60, LOW := 30)
LD LIMITALARMInst.U
ST Varbool2
IL LD LIMITALARMInst.IL
ST Varbool3
LD LIMITALARMInst.O
ST Varbool1

FBD

4-22-2

ABB PLC 96 AC500/Issue: 06.2012


4-22-2

2.20 Standard.lib

2.20.1 SR——

Q1=(NOT RESET AND Q1) OR SET1


SET1 RESET
/ BOOL

LD

VarBOOL3 NOT VarBOOL2 AND VarBOOL3 OR VarBOOL1


ST SRInst(SET1:= VarBOOL1 , RESET:=VarBOOL2 );

ABB PLC 97 AC500/Issue: 06.2012


VarBOOL3 := SRInst.Q1 ;
CALSRInst(SET1:= VarBOOL1, RESET:= VarBOOL2)
IL LD SRInst.Q1
ST VarBOOL3

FBD

SET1 RESET
0 0
1 0 1
SR
0 1 0
1 1 1

2.20.2 RS——

Q1=NOT RESET1 AND (Q1 OR SET)


SET RESET1
/ BOOL

LD

VarBOOL3 NOT VarBOOL2 AND (VarBOOL3 OR VarBOOL1)


RSInst(SET:= VarBOOL1 , RESET1:=VarBOOL2 );
ST
VarBOOL3 := RSInst.Q1 ;
CAL RSInst(SET := VarBOOL1, RESET1 := VarBOOL2)
IL LD RSInst.Q1
ST VarBOOL3

ABB PLC 98 AC500/Issue: 06.2012


FBD

ABB PLC 99 AC500/Issue: 06.2012


SET RESET1
0 0
1 0 1
RS
0 1 0
1 1 0

2.21 Standard.lib
R_TRIG F_TRIG

2.21.1 R_TRIG——

Q := CLK AND NOT M;


M := CLK;
M TRUE CLK FALSE Q M FALSE
Q FALSE CLK Q TRUE
/ CLK Q BOOL

LD

RTRIGInst(CLK:= VarBOOL1);
ST
VarBOOL2 := RTRIGInst.Q;
CAL RTRIGInst(CLK := VarBOOL1)
IL LD RTRIGInst.Q
ST VarBOOL2

FBD

2.21.2 F_TRIG——

ABB PLC 100 AC500/Issue: 06.2012


Q := NOT CLK AND NOT M;
M := NOT CLK;
M FALSE CLK TRUE Q M FALSE CLK
FALSE Q TRUE M TRUE Q FALSE CLK
Q TRUE
/ BOOL

LD

FTRIGInst(CLK:= VarBOOL1);
ST
VarBOOL2 := FTRIGInst.Q;
CAL FTRIGInst(CLK := VarBOOL1)
IL LD FTRIGInst.Q
ST VarBOOL2

FBD

2.22 Standard.lib
CTU CTD CTUD

2.22.1 CTU——

CU FALSE TRUE
CU BOOL
CV 1
TRUE CTU
RESET BOOL
PV WORD 0-65535

CV PV Q
Q BOOL
TRUE

ABB PLC 101 AC500/Issue: 06.2012


CV WORD

LD

CTUInst(CU:= VarBOOL1, RESET:=VarBOOL2 , PV:= VarINT1);

ST VarBOOL3 := CTUInst.Q;
VarINT2 := CTUInst.CV;
CAL CTUInst(CU := VarBOOL1, RESET := VarBOOL2, PV :=VarINT1)
LD CTUInst.Q
IL ST VarBOOL3
LD CTUInst.CV
ST VarINT2

FBD

2.22.2 CTD——

CD FALSE TRUE
CD BOOL CV 0 CV 1 CV
0
LOAD TRUE CV
LOAD BOOL
PV
PV WORD 0-65535

Q BOOL CV 0 Q TRUE
CV WORD

ABB PLC 102 AC500/Issue: 06.2012


LD

CTDInst(CD:= VarBOOL1, LOAD:=VarBOOL2 , PV:= VarINT1);


ST VarBOOL3 := CTDInst.Q;
VarINT2 := CTDInst.CV;
CAL CTDInst(CD := VarBOOL1, LOAD := VarBOOL2, PV :=VarINT1)
LD CTDInst.Q
IL ST VarBOOL3
LD CTDInst.CV
ST VarINT2

FBD

2.22.3 CTUD——

CU FALSE TRUE
CU BOOL
CV 1
CD FALSE TRUE
CD BOOL CV 0 CV 1 CV
0
RESET TRUE CV
RESET BOOL
0
LOAD TRUE CV
LOAD BOOL
PV
PV WORD 0-65535

ABB PLC 103 AC500/Issue: 06.2012


QU BOOL CV PV QU TRUE
QD BOOL CV 0 QD TRUE
CV WORD

LD

CTUDInst(CU:=VarBOOL1,CD:=VarBOOL2,RESET:=VarBOOL3,
LOAD:=VarBOOL4,PV:=VarINT1)

ST VarBOOL5 := CTUDInst.QU
VarBOOL6 := CTUDInst.QD
VarINT2 := CTUDInst.CV
CAL CTUDInst(CU:=VarBOOL1,CD:=VarBOOL2,
RESET:=VarBOOL3,LOAD:=VarBOOL4,PV:=VarINT1)
LD CTUDInst.QU
ST VarBOOL5
IL
LD CTUDInst.QD
ST VarBOOL6
LD CTUDInst.CV
ST VarINT2

FBD

ABB PLC 104 AC500/Issue: 06.2012


2.23 Standard.lib
TP TON TOF RTC

2.23.1 TP——

IN TRUE ET
IN BOOL ET PT ET

PT TIME

IN FALSE Q FALSE
ET 0 IN TRUE
Q BOOL Q TRUE ET
PT IN ET
PT Q FALSE
IN TRUE ET
ET PT ET
ET TIME
IN FALSE
ET 0

TP

ABB PLC 105 AC500/Issue: 06.2012


LD

TPInst(IN:= VarBOOL1,PT:= T#5s);


ST
VarBOOL2:=TPInst.Q;
CAL TPInst(IN:= VarBOOL1,PT:=T#5s)
IL LD TPInst.Q
ST VarBOOL2

FBD

2.23.2 TON——

IN TRUE ET
IN BOOL ET PT ET

PT TIME

IN FALSE Q FALSE
ET 0 IN TRUE
Q BOOL
ET PT Q
TRUE
IN TRUE ET
ET PT ET
ET TIME
IN FALSE
ET 0

TON

ABB PLC 106 AC500/Issue: 06.2012


LD

ST TONInst(IN:=VarBOOL1,PT:= T#5s);
CAL TONInst(IN:= VarBOOL1,PT:=T#5s)
IL LD TONInst.Q
ST VarBOOL2

FBD

2.23.3 TOF——

IN TRUE FALSE
IN BOOL ET ET PT
ET
PT TIME

IN FALSE ET PT
Q BOOL
Q FALSE Q TRUE
ET TIME IN FALSE ET

ABB PLC 107 AC500/Issue: 06.2012


ET PT ET
IN TRUE
ET 0 Q TRUE

ABB PLC 108 AC500/Issue: 06.2012


TOF

LD

TOFInst(IN:= VarBOOL1,PT:=T#5s);
ST
VarBOOL2 :=TOFInst.Q;
CAL TOFInst(IN:= VarBOOL1,PT:= T#5s)
IL LD TOFInst.Q
ST VarBOOL2

FBD

ABB PLC 109 AC500/Issue: 06.2012


2.23.4 RTC——

EN BOOL
PDT DT

EN FALSE Q FALSE
Q BOOL
EN TRUE Q TRUE
EN FALSE CDT
1970-01-01-00:00:00 EN TRUE
CDT DT
CDT PDT

LD

RTCInst(PDT:=DT#2005-08-10-18:30:31);
ST DT1:=RTCInst.CDT;
VarBOOL1:=RTCInst.Q;
CAL RTCInst(PDT := DT#2005-08-10-18:30:31)
LD RTCInst.CDT
IL ST DT1
LD RTCInst.Q
ST VarBOOL1

FBD

ABB PLC 110 AC500/Issue: 06.2012


A

A.1

ADD FUN
MUL FUN
SUB FUN
DIV FUN
MOD FUN
MOVE FUN
AND FUN
OR FUN
XOR FUN
NOT FUN
SHL FUN
SHR FUN
ROL FUN
ROR FUN
SEL FUN
MAX FUN
MIN FUN
LIMIT FUN
MUX FUN
GT FUN
LT FUN
GE FUN
LE FUN
EQ FUN
NE FUN
BOOL_TO_<TYPE>(FUN)
BYTE_TO_<TYPE>(FUN)
DATE_TO_<TYPE>(FUN)
DINT_TO_<TYPE>(FUN)
DT_TO_<TYPE>(FUN)
DWORD_TO_<TYPE>(FUN)
INT_TO_<TYPE>(FUN)

ABB PLC 111 AC500/Issue: 06.2012


WORD_TO_<TYPE>(FUN)
REAL_TO_<TYPE>(FUN)
SINT_TO_<TYPE>(FUN)
STRING_TO_<TYPE>(FUN)
TIME_TO_<TYPE>(FUN)
TOD_TO_<TYPE>(FUN)
UDINT_TO_<TYPE>(FUN)
UINT_TO_<TYPE>(FUN)
USINT_TO_<TYPE>(FUN)
TRUNC(FUN)
ABS(FUN)
SQRT(FUN)
LN(FUN)
LOG(FUN)
EXP(FUN)
SIN(FUN)
COS(FUN)
TAN(FUN)
ASIN(FUN)
ACOS(FUN)
ATAN(FUN)
EXPT(FUN)
ADR(FUN)
^(FUN)
BITADR(FUN)
INDEXOF FUN
SIZEOF FUN
CAL(FUN)
INI(FUN)
CONCAT(FUN)
DELETE(FUN)
FIND(FUN)
INSERT(FUN)
LEFT(FUN) Standard.lib
LEN(FUN)
MID(FUN)
REPLACE(FUN)
RIGHT(FUN)
Version_Util(FUN) Util.lib

ABB PLC 112 AC500/Issue: 06.2012


BCD BCD_TO_INT(FUN)
BCD Util.lib
BCD INT_TO_BCD(FUN)
EXTRACT(FUN)
PACK(FUN)
/ Util.lib
PUTBIT(FUN)
UNPACK(FB)
DERIVATIVE(FB)
INTEGRAL(FB)
STATISTICS_INT(FB) Util.lib
STATISTICS_REAL(FB)
VARIANCE(FB)
P(FB)
PD(FB)
Util.lib
PID(FB)
PID_FIXCYCLE(FB)
BLINK(FB)
Util.lib
GEN(FB)
SFC SFC SFCActionControl(FB) Iecsfc.lib
CHARCURVE(FB)
RAMP_INT(FB) Util.lib
RAMP_REAL(FB)
HYSTERESIS(FB)
Util.lib
LIMITALARM(FB)
SR(FB)
Standard.lib
RS(FB)
R_TRIG(FB)
Standard.lib
F_TRIG(FB)
CTU(FB)
CTD(FB) Standard.lib
CTUD(FB)
TP(FB)
TON(FB)
Standard.lib
TOF(FB)
RTC(FB)

A.2 IEC
CodeSys IEC IEC61131-3

IEC61131-3

ABB PLC 113 AC500/Issue: 06.2012


IEC

ADD
MUL
SUB
DIV
MOD
AND
OR
XOR
NOT
SHL
SHR
ROL
ROR
SEL
MAX
MIN
LIMIT
MUX
GT
LT
GE
LE
EQ
NE
BOOL_TO_<TYPE>
BYTE_TO_<TYPE>
DATE_TO_<TYPE>
DINT_TO_<TYPE>
DT_TO_<TYPE>
DWORD_TO_<TYPE>
INT_TO_<TYPE>
WORD_TO_<TYPE>
REAL_TO_<TYPE>
SINT_TO_<TYPE>
STRING_TO_<TYPE>
TIME_TO_<TYPE>
TOD_TO_<TYPE>
UDINT_TO_<TYPE>

ABB PLC 114 AC500/Issue: 06.2012


UINT_TO_<TYPE>
USINT_TO_<TYPE>
TRUNC
ABS
SQRT
LN
LOG
EXP
SIN
COS
TAN
ASIN
ACOS
ATAN
EXPT
ADR
^
BITADR
INDEXOF
SIZEOF
CAL
INI
CONCAT
DELETE
FIND
INSERT
LEFT
LEN
MID
REPLACE
RIGHT
BCD BCD_TO_INT
BCD
BCD INT_TO_BCD
SR
RS
R_TRIG
F_TRIG
CTU
CTD
CTUD

ABB PLC 115 AC500/Issue: 06.2012


TP
TON
TOF
RTC

ABB PLC 116 AC500/Issue: 06.2012


ABB
10 D 1
100015
(86-10)58217788
(86-10)58217518
400 810 8885
E-Mail [email protected]
http://www.abb.com.cn/plc

ABB PLC 117 AC500/Issue: 06.2012

You might also like