Download this file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
FUNCTION_BLOCK DOUT VAR_INPUT CONSTANT // Pin number 0 - 15 pin_num : INT; END_VAR VAR_INPUT input : BOOL; VAR_OUTPUT state : BOOL; VAR hShMemOut: RTS_IEC_HANDLE; hShMemOutState: RTS_IEC_HANDLE; ResultWrite: RTS_IEC_RESULT; WriteResult: RTS_IEC_RESULT; ReadResult: RTS_IEC_RESULT; iWrite: __UXINT; iRead : __UXINT; ulSize: UDINT := SIZEOF(GVL.output);. hShMemOut := SysSharedMemoryCreate('_CODESYS_out', 0, ADR(ulSize), ADR(ResultWrite)); // Fetch current state of pins first. iWrite := SysSharedMemoryWrite(hShMemOut, pin_num, ADR(GVL.output[pin_num]), SIZEOF(GVL.output[pin_num]), ADR(WriteResult)); iWrite := SysSharedMemoryClose(hShm := hShMemOut);