That would work if all of my tests were happening at the same time, however, each of my 50+ tests happen in sequence and displays an error for a brief moment until it understands it is not an error and skips to the next test in the sequence.
So calling a function every 5 seconds would only create a delay for this case. However, this is useful for future programs on other applications for me.
The following is typical code for my custom functions. I've also attached a *.jpg of the ladder logic, but I am not sure if it will show up....
'A3 OPEN TEST
IF TESTIO(A3_CS)=0 & CTRPV[1]=1 THEN
CALL 1:
SETLCD 2,1,B$+"A3" 'Line 2, Column 1
ELSE
IF TESTBIT (INPUT[1],1) THEN
SETLCD 0,0,CHR$(1)
ENDIF
ENDIF
'SOCKET 33 TO A3 - NCS CONNECTOR TO NCS OPEN TEST
IF TESTIO (A3_CS)=0 & CTRPV[3]=9 THEN
CALL 1:
SETLCD 2,1,E$+D$+"A3"+G$+"2-A" ' LINE 2, COLUMN 1
ENDIF
'SHORT TEST
IF TESTBIT (INPUT[1],1) THEN
IF INPUT[1]+INPUT[2]+INPUT[3]+INPUT[4]+INPUT[5] & &HFFFD THEN 'CHECK IF ANY OTHER INPUT #1 TO #16) IS ON
CALL 2:
SETLCD 2,1,D$+"A3 &"
CALL 8:
ELSE
IF CTRPV[1]=1 THEN
CTRPV[1]=2
SETLCD 0,0,CHR$(1)
ELSE
CTRPV[3]=10
SETLCD 0,0,CHR$(1)
ENDIF
ENDIF
ENDIF