sub main ()

	@PLC.AUTO = 1;
	@PLC_SIMU.HORO.DAY = TOS (DATETIME ("DAY"));
	@PLC_SIMU.HORO.MONTH = TOS (DATETIME ("MONTH"));
	@PLC_SIMU.HORO.YEAR = TOS (DATETIME ("YEAR"));
	@PLC_SIMU.HORO.HOUR = TOS (DATETIME ("HOUR"));
	@PLC_SIMU.HORO.MINUTE = TOS (DATETIME ("MINUTE"));
	@PLC_SIMU.HORO.SECOND = TOS (DATETIME ("SECOND"));
	@PLC_SIMU.HORO.MILLISECOND = TOS (DATETIME ("MILLISECOND"));

	EVENT ("ADDPROG", "PLC_SIMU.BIT00", "S>S", "PRG1", "", "FillTable", "0");
	EVENT ("ADDPROG", "PLC_SIMU.BIT01", "S>S", "PRG1", "", "FillTable", "1");
	EVENT ("ADDPROG", "PLC_SIMU.BIT02", "S>S", "PRG1", "", "FillTable", "2");
	EVENT ("ADDPROG", "PLC_SIMU.BIT03", "S>S", "PRG1", "", "FillTable", "3");
end sub


sub FillTable()
dim TSday as single;
dim TSmonth as single;
dim TSyear as single;
dim TShour as single;
dim TSminute as single;
dim TSsecond as single;
dim TSmillisecond as single;

dim NameVar as str;
dim ValueVar as integer;

if (@PLC.AUTO) then
	if (@PLC_SIMU.HORO.HEADER == 0) then
		TSday = TOS (DATETIME ("DAY"));
		TSmonth = TOS (DATETIME ("MONTH"));
		TSyear = TOS (DATETIME ("YEAR"));
		TShour = TOS (DATETIME ("HOUR"));
		TSminute = TOS (DATETIME ("MINUTE"));
		TSsecond = TOS (DATETIME ("SECOND"));
		TSmillisecond = TOS (DATETIME ("MILLISECOND"));

		@PLC_SIMU.HORO.DAY = TSday;
		@PLC_SIMU.HORO.MONTH = TSmonth;
		@PLC_SIMU.HORO.YEAR = TSyear;
		@PLC_SIMU.HORO.HOUR = TShour;
		@PLC_SIMU.HORO.MINUTE = TSminute;
		@PLC_SIMU.HORO.SECOND = TSsecond;
		@PLC_SIMU.HORO.MILLISECOND = TSmillisecond;

		@PLC_SIMU.HORO.M1 = 0;	'Type : 0 for bit I, 2048 (0800h) for bit I/O, 1280 (0500h) for wordbit I/O, 3328 (0D00h) for wordbit I/O
		@PLC_SIMU.HORO.M2 = SVAL (GETARG ("ARG1"));	'Adress
		@PLC_SIMU.HORO.M3 = 0;	'Always 0 for bits
		NameVar = GETARG ("VARNAME");
		ValueVar = ?NameVar;
		@PLC_SIMU.HORO.M4 = TOS (ValueVar);
		@PLC_SIMU.HORO.M5 = TSyear;
		@PLC_SIMU.HORO.M6 = TOS (LOGICAL ("SHIFT_LEFT", TSmonth, 8)) + TSday;
		@PLC_SIMU.HORO.M7 = TOS (LOGICAL ("SHIFT_LEFT", TShour, 8)) + TSminute;
		@PLC_SIMU.HORO.M8 = (TSsecond * 1000) + TSmillisecond;
		@PLC_SIMU.HORO.HEADER = 1;
	end if
end if
end sub
