Solved PCF8574 READ/WRIE problem

This commit is contained in:
Bernardo Carvalho
2019-12-12 17:24:42 +00:00
parent 1189a07ed7
commit fa9fc97a32
5 changed files with 37 additions and 58 deletions

View File

@@ -81,37 +81,31 @@ record(fanout, "$(P)$(R)PCF8574:56:REGISTER:READ:FNOUT"){
field(LNK2, "$(P)$(R)TMPump1-Emergency")
field(LNK3, "$(P)$(R)TMPump1-Acceleration")
field(LNK4, "$(P)$(R)TMPump1-NormalOperation")
# field(LNK2, "$(P)$(R)Turbo_Emergency")
}
record(bi , "$(P)$(R)TMPump1-Power" ) {
field(DESC," TMP1 Alimentada 220V ")
#record(bi , "$(P)$(R)Turbo_PW_Ind" ) {
field( INP, "$(P)$(R)PCF8574:56:REGISTER:READ.B4 NPP NMS")
# field( SCAN, "1 second")
field( ZNAM, "ON" )
field( ONAM, "OFF" )
# field(FLNK, "$(P)$(R)Turbo_Emergency")
}
record(bi , "$(P)$(R)TMPump1-Emergency") {
field(DESC," TMP1 Falha ")
#record(bi , "$(P)$(R)Turbo_Emergency") {
field( INP, "$(P)$(R)PCF8574:56:REGISTER:READ.B5 NPP NMS")
field( INP, "$(P)$(R)PCF8574:56:REGISTER:READ.B6 NPP NMS")
# field(VAL,"1")
field( ZNAM, "ON" )
field( ONAM, "OFF" )
field(ZSV,"MAJOR")
# field(FLNK, "$(P)$(R)Turbo_Acceleration")
}
record(bi , "$(P)$(R)TMPump1-Acceleration") {
field(DESC," TMP1 Motor em aceleração ")
#record(bi , "$(P)$(R)Turbo_Acceleration") {
field( INP, "$(P)$(R)PCF8574:56:REGISTER:READ.B6 NPP NMS")
field( INP, "$(P)$(R)PCF8574:56:REGISTER:READ.B5 NPP NMS")
field( ZNAM, "ON" )
field( ONAM, "OFF" )
# field(FLNK, "$(P)$(R)Turbo_NormalOperation")
field(ZSV,"MINOR")
}
record(bi , "$(P)$(R)TMPump1-NormalOperation" ) {
field(DESC," TMP1 Operação Normal ")
field(DESC," TMP1 Operação Normal ")
field( INP, "$(P)$(R)PCF8574:56:REGISTER:READ.B7 NPP NMS")
field( ZNAM, "ON" )
field(ONAM, "OFF" )

View File

@@ -22,8 +22,7 @@ record( mbboDirect, "$(P)$(R)PCF8574:56:REGISTER") {
field(OUT, "@pcf8574.proto wReg(56) I2C")
field(SHFT, "0")
field(NOBT, "8")
# Has @init on protocol
# field(VAL, 255)
field(VAL, 255)
# field(PINI,"YES")
}
@@ -33,7 +32,6 @@ record( mbbiDirect, "$(P)$(R)PCF8574:56:REGISTER:READ" ) {
field(NOBT, "8")
field(SCAN, "1 second")
field(FLNK, "$(P)$(R)PCF8574:56:REGISTER:READ:FNOUT")
# field(PINI,"YES")
}
#####################################################
@@ -44,7 +42,7 @@ record( mbboDirect, "$(P)$(R)PCF8574:57:REGISTER") {
field(OUT, "@pcf8574.proto wReg(57) I2C")
field(SHFT, "0")
field(NOBT, "8")
# field(VAL, 255)
field(VAL, 255)
# field(PINI,"YES")
}
@@ -54,7 +52,6 @@ record( mbbiDirect, "$(P)$(R)PCF8574:57:REGISTER:READ" ) {
field(NOBT, "8")
field(SCAN, "1 second")
field(FLNK, "$(P)$(R)PCF8574:57:REGISTER:READ:FNOUT")
# field(PINI,"YES")
}
#####################################################
@@ -65,7 +62,7 @@ record( mbboDirect, "$(P)$(R)PCF8574:60:REGISTER") {
field( OUT, "@pcf8574.proto wReg(60) I2C")
field( SHFT, "0")
field( NOBT, "8")
#field(VAL, 255)
field(VAL, 255)
#field(PINI,"YES")
}
@@ -86,7 +83,7 @@ record( mbboDirect, "$(P)$(R)PCF8574:61:REGISTER") {
field( OUT, "@pcf8574.proto wReg(61) I2C")
field( SHFT, "0")
field( NOBT, "8")
#field(VAL, 255)
field(VAL, 255)
#field(PINI,"YES")
}

View File

@@ -248,10 +248,10 @@ record(mbbi, "$(P)$(R)STOPPINGSTATE") {
field(FRVL, "4")
field(FVVL, "5")
field(ZRST, "NonStopping")
field(ONST, "WaitManV")
field(TWST, "Stopping2")
field(THST, "StopEnd")
field(FRST, "Stopping4")
field(ONST, "WaitTMP")
field(TWST, "WaitManV")
field(THST, "Stopping3")
field(FRST, "StoppingEnd")
field(FVST, "Stopping5")
field(VAL, "0")
}

View File

@@ -58,7 +58,7 @@ short STPST_NonStopping = 0;
short STPST_Stopping1 = 1;
short STPST_Stopping2 = 2;
short STPST_Stopping3 = 3;
//short STPST_Stopping4 = 4;
short STPST_StoppingEnd = 4;
//short STPST_Stopping5 = 5;
short POS_Stopped =0;
@@ -150,9 +150,9 @@ assign IsttokTMPump1_MotorOn to "ISTTOK:central:TMPump1-MotorOn";
short IsttokTMPump2_Motor;
assign IsttokTMPump2_Motor to "ISTTOK:central:TMPump2-Motor";
short IsttokTMPump1_NormalOperation;
assign IsttokTMPump1_NormalOperation to "ISTTOK:central:TMPump1-NormalOperation";
monitor IsttokTMPump1_NormalOperation;
short TMPump1NormalOperation;
assign TMPump1NormalOperation to "ISTTOK:central:TMPump1-NormalOperation";
monitor TMPump1NormalOperation;
short IsttokTMPump1_Power;
assign IsttokTMPump1_Power to "ISTTOK:central:TMPump1-Power";
@@ -526,7 +526,7 @@ ss PulseSequence {
pvPut(IsttokOPSTATE);
} state Starting
when (STOPPINGSTATE == STPST_Stopping3) {
when (STOPPINGSTATE == STPST_StoppingEnd) {
IsttokOPSTATE = POS_Stopped;
pvPut(IsttokOPSTATE);
} state Stopped
@@ -689,7 +689,7 @@ ss StartingSequence {
IsttokTMPump2_Motor = PCF_RELAY_ON;
pvPut(IsttokTMPump2_Motor);
/*
if(IsttokTMPump1_NormalOperation == PCF_INPUT_ON){
if(TMPump1NormalOperation == PCF_INPUT_ON){
sprintf(tmp1_stat, "ON");
}else{
sprintf(tmp1_stat, "OFF");
@@ -711,7 +711,7 @@ ss StartingSequence {
//IsttokSTARTINGSTATE = STRST_NonStarting;
//pvPut(IsttokSTARTINGSTATE);
} state NonStarting
when (IsttokTMPump1_NormalOperation == PCF_INPUT_ON) { // TODO insert TMP2 Test
when (TMPump1NormalOperation == PCF_INPUT_ON) { // TODO insert TMP2 Test
strcpy(msg, "TMP1 operating Normal");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
@@ -1122,26 +1122,18 @@ ss StoppingSequence {
} state Stopping1
}
state Stopping1 {
when (IsttokOPSTATE != POS_Stopping ) {
/*
strcpy(msg, "Stopping Mode: NonStopping");
when (IsttokOPSTATE != POS_Stopping ) { } state NonStopping
when (TMPump1NormalOperation == PCF_INPUT_OFF) { // TODO insert TMP2 Test
strcpy(msg, "TMP1 Stopping");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
STOPPINGSTATE = STPST_NonStopping;
STOPPINGSTATE = STPST_Stopping2;
pvPut(STOPPINGSTATE);
*/
} state Stopping2
}
state Stopping2 {
when (IsttokOPSTATE != POS_Stopping ) {
} state NonStopping
/*
when (delay(5) && IsttokOPREQ==START ) {
strcpy(msg, "State to Starting");
pvPut(msg);
errlogSevPrintf(NO_ALARM, "%s\n",msg);
/* State change to Starting
IsttokOPSTATE = POS_Starting;
pvPut(IsttokOPSTATE);
} state NonStopping
*/
when (delay(5.0) && IsttokTMPump1_ManualValve==OFF) {
strcpy(msg, "Manual Valve Closed Checked");
pvPut(msg);
@@ -1153,14 +1145,12 @@ ss StoppingSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokRPump2_Motor = PCF_RELAY_ON;
pvPut(IsttokRPump2_Motor);
STOPPINGSTATE = STPST_Stopping2;
STOPPINGSTATE = STPST_Stopping3;
pvPut(STOPPINGSTATE);
} state Stopping2
} state Stopping3
}
state Stopping2 {
state Stopping3 {
when (IsttokOPSTATE != POS_Stopping ) {
// STOPPINGSTATE = STPST_NonStopping;
// pvPut(STOPPINGSTATE);
} state NonStopping
when (delay(5)) {
IsttokRPump1_Valve = PCF_RELAY_ON;
@@ -1170,15 +1160,12 @@ ss StoppingSequence {
errlogSevPrintf(NO_ALARM, "%s\n",msg);
IsttokRPump2_Valve = PCF_RELAY_ON;
pvPut(IsttokRPump2_Valve);
STOPPINGSTATE = STPST_Stopping3;
STOPPINGSTATE = STPST_StoppingEnd;
pvPut(STOPPINGSTATE);
} state Stopping3
} state StoppingEnd
}
state Stopping3 {
when (IsttokOPSTATE != POS_Stopping ) {
// STOPPINGSTATE = STPST_NonStopping;
// pvPut(STOPPINGSTATE);
} state NonStopping
state StoppingEnd {
when (IsttokOPSTATE != POS_Stopping ) { } state NonStopping
}
}