ABB一般来说我们接触得比较多的是变频器,比如ACS510。其实ABB的PLC也是存在的,早期西门子S7-200 smart未普及时候,因为ABB的AC500控制器具备了以太网及串口,常用来作数据采集用。
ABB PS501 Control Builder Plus作为ABB AC500的编程软件。
软件基于Codsys平台
目前选择AC500 PM 564 -ETH控制器
声明变量
VAR
READ_NUM:WORD:=3;
TIMEOUT1:WORD:=900;
FJ1_COM_:COM_MOD_MAST ;
FJ2_COM_:COM_MOD_MAST ;
FJ3_COM_:COM_MOD_MAST ;
FJ4_COM_: COM_MOD_MAST;
FJ5_COM_: COM_MOD_MAST;
FJ6_COM_: COM_MOD_MAST;
FJ7_COM_: COM_MOD_MAST;
FJ8_COM_: COM_MOD_MAST;
FJ9_COM_: COM_MOD_MAST;
FJ10_COM_: COM_MOD_MAST;
XH:INT;
ERR1: WORD;
ERR2: WORD;
ERR3: WORD;
ERR4: WORD;
ERR5: WORD;
ERR6: WORD;
ERR7: WORD;
ERR8: WORD;
ERR9: WORD;
ERR10: WORD;
END_VAR
编写代码:
XH:=XH+1;
IF XH>10 THEN XH:=0;END_IF
(**AA01/1 柴油发电机进线 PZ96-E4*)
FJ1_COM_(
EN:=XH=1 ,
COM:=1 ,
SLAVE:=1,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=37,
NB:=23,
DATA:= ADR(%MW0.100),
DONE=> ,
ERR=> ,
ERNO=> ERR1);(*ERR=0时,通讯正常*)
uab_AA01_1:=WORD_TO_REAL(%MW0.103)/10;
ubc_AA01_1:=WORD_TO_REAL(%MW0.104)/10;
uac_AA01_1:=WORD_TO_REAL(%MW0.105)/10;
ia_AA01_1:=WORD_TO_REAL(%MW0.106)/10;
ib_AA01_1:=WORD_TO_REAL(%MW0.107)/10;
ic_AA01_1:=WORD_TO_REAL(%MW0.108)/10;
p_AA01_1:=WORD_TO_REAL(%MW0.112)/10;
(**AA01/2 变压器进线 PZ96-E4*)
FJ2_COM_(
EN:=XH=2 ,
COM:=1 ,
SLAVE:=2,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=37,
NB:=23,
DATA:= ADR(%MW0.200),
DONE=> ,
ERR=> ,
ERNO=> ERR2);(*ERR=0时,通讯正常*)
uab_AA01_2:=WORD_TO_REAL(%MW0.203)/10;
ubc_AA01_2:=WORD_TO_REAL(%MW0.204)/10;
uac_AA01_2:=WORD_TO_REAL(%MW0.205)/10;
ia_AA01_2:=WORD_TO_REAL(%MW0.206)/10;
ib_AA01_2:=WORD_TO_REAL(%MW0.207)/10;
ic_AA01_2:=WORD_TO_REAL(%MW0.208)/10;
p_AA01_2:=WORD_TO_REAL(%MW0.212)/10;
(**AA04/2 全厂照明进线 PZ96-E4*)
FJ3_COM_(
EN:=XH=3 ,
COM:=1 ,
SLAVE:=3,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=37,
NB:=23,
DATA:= ADR(%MW0.300),
DONE=> ,
ERR=> ,
ERNO=> ERR3);(*ERR=0时,通讯正常*)
uab_AA04_2:=WORD_TO_REAL(%MW0.303)/10;
ubc_AA04_2:=WORD_TO_REAL(%MW0.304)/10;
uac_AA04_2:=WORD_TO_REAL(%MW0.305)/10;
ia_AA04_2:=WORD_TO_REAL(%MW0.306)/10;
ib_AA04_2:=WORD_TO_REAL(%MW0.307)/10;
ic_AA04_2:=WORD_TO_REAL(%MW0.308)/10;
p_AA04_2:=WORD_TO_REAL(%MW0.312)/10;
(**AA04/4 ****** PZ72-AI3*)
FJ4_COM_(
EN:=XH=4 ,
COM:=1 ,
SLAVE:=4,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=0,
NB:=12,
DATA:= ADR(%MW0.400),
DONE=> ,
ERR=> ,
ERNO=> ERR4);(*ERR=0时,通讯正常*)
ia_AA04_4:=WORD_TO_REAL(%MW0.406)/10;
ib_AA04_4:=WORD_TO_REAL(%MW0.408)/10;
ic_AA04_4:=WORD_TO_REAL(%MW0.410)/10;
(**AA05/1 ****** PZ72-AI3*)
FJ5_COM_(
EN:=XH=5,
COM:=1 ,
SLAVE:=5,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=0,
NB:=12,
DATA:= ADR(%MW0.420),
DONE=> ,
ERR=> ,
ERNO=> ERR5);(*ERR=0时,通讯正常*)
ia_AA05_1:=WORD_TO_REAL(%MW0.426)/10;
ib_AA05_1:=WORD_TO_REAL(%MW0.428)/10;
ic_AA05_1:=WORD_TO_REAL(%MW0.430)/10;
(**AA05/2 ****** PZ72-AI3*)
FJ6_COM_(
EN:=XH=6,
COM:=1 ,
SLAVE:=6,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=0,
NB:=12,
DATA:= ADR(%MW0.440),
DONE=> ,
ERR=> ,
ERNO=> ERR6);(*ERR=0时,通讯正常*)
ia_AA05_2:=WORD_TO_REAL(%MW0.446)/10;
ib_AA05_2:=WORD_TO_REAL(%MW0.448)/10;
ic_AA05_2:=WORD_TO_REAL(%MW0.450)/10;
(**AA06/1 ****** PZ72-AI3*)
FJ7_COM_(
EN:=XH=7,
COM:=1 ,
SLAVE:=7,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=0,
NB:=12,
DATA:= ADR(%MW0.460),
DONE=> ,
ERR=> ,
ERNO=> ERR7);(*ERR=0时,通讯正常*)
ia_AA06_1:=WORD_TO_REAL(%MW0.466)/10;
ib_AA06_1:=WORD_TO_REAL(%MW0.468)/10;
ic_AA06_1:=WORD_TO_REAL(%MW0.470)/10;
(**AA06/2 ****** PZ72-AI3*)
FJ8_COM_(
EN:=XH=8,
COM:=1 ,
SLAVE:=8,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=0,
NB:=12,
DATA:= ADR(%MW0.480),
DONE=> ,
ERR=> ,
ERNO=> ERR8);(*ERR=0时,通讯正常*)
ia_AA06_2:=WORD_TO_REAL(%MW0.486)/10;
ib_AA06_2:=WORD_TO_REAL(%MW0.488)/10;
ic_AA06_2:=WORD_TO_REAL(%MW0.490)/10;
(**AA07/1 ****** PZ72-AI3*)
FJ9_COM_(
EN:=XH=9,
COM:=1 ,
SLAVE:=9,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=0,
NB:=12,
DATA:= ADR(%MW0.500),
DONE=> ,
ERR=> ,
ERNO=> ERR9);(*ERR=0时,通讯正常*)
ia_AA07_1:=WORD_TO_REAL(%MW0.506)/10;
ib_AA07_1:=WORD_TO_REAL(%MW0.508)/10;
ic_AA07_1:=WORD_TO_REAL(%MW0.510)/10;
(**AA07/2 ****** PZ72-AI3*)
FJ10_COM_(
EN:=XH=10,
COM:=1 ,
SLAVE:=10,
FCT:= 3,
TIMEOUT:=TIMEOUT1 ,
ADDR:=0,
NB:=12,
DATA:= ADR(%MW0.520),
DONE=> ,
ERR=> ,
ERNO=> ERR10);(*ERR=0时,通讯正常*)
ia_AA07_2:=WORD_TO_REAL(%MW0.526)/10;
ib_AA07_2:=WORD_TO_REAL(%MW0.528)/10;
ic_AA07_2:=WORD_TO_REAL(%MW0.530)/10;
|