[r2]: / aunit-prj,aunit,aunit_rtu / CODESYS_Control_for_Linux_ARM_SL / Plc Logic / Application / DOUT / svnobj  Maximize  Restore  History

Download this file

23 lines (22 with data), 3.8 kB

 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);