KSS 8.6 --- KR C4
My attempt is below. Maybe there is a more standard way to do this?
Code
&ACCESS RV
&COMMENT shows how to cast an int into flag array
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\FunctionVorgabe
DEFFCT BOOL zzz_examples_flag_int( )
;;;zzzfg
DECL INT weld_job
DECL CHAR byteArray[4] ; 4 bytes to store 32-bit integer
DECL INT OFFSET
weld_job = 9 ; Example weld job number
; Convert the integer weld_job into a byte array representation
OFFSET = 0
CAST_TO(byteArray[], OFFSET, 4, weld_job)
; Apply the byteArray values to $OUT[65] through $OUT[80]
$FLAG[65] = (byteArray[0] AND 2#00000001) <> 0
$FLAG[66] = (byteArray[0] AND 2#00000010) <> 0
$FLAG[67] = (byteArray[0] AND 2#00000100) <> 0
$FLAG[68] = (byteArray[0] AND 2#00001000) <> 0
$FLAG[69] = (byteArray[0] AND 2#00010000) <> 0
$FLAG[70] = (byteArray[0] AND 2#00100000) <> 0
$FLAG[71] = (byteArray[0] AND 2#01000000) <> 0
$FLAG[72] = (byteArray[0] AND 2#10000000) <> 0
$FLAG[73] = (byteArray[1] AND 2#00000001) <> 0
$FLAG[74] = (byteArray[1] AND 2#00000010) <> 0
$FLAG[75] = (byteArray[1] AND 2#00000100) <> 0
$FLAG[76] = (byteArray[1] AND 2#00001000) <> 0
$FLAG[77] = (byteArray[1] AND 2#00010000) <> 0
$FLAG[78] = (byteArray[1] AND 2#00100000) <> 0
$FLAG[79] = (byteArray[1] AND 2#01000000) <> 0
$FLAG[80] = (byteArray[1] AND 2#10000000) <> 0
ENDFCT
Display More