вы вызываете SysSockConnect и ждете 50ms. А если за это время коннекта не произойдет?
попробуйте вызывать SysSockConnect пока он не возвратит FALSE и как только это произойдет переходите к следующей итерации. У меня устроено именно так и перезагрузок не замечал (хотя щя специально проверю и отпишусь). Единственное, заметил что вызов то ли SysSockConnect то ли SysSockListen (щя уже не помню) в каждом цикле сильно тормозил ПЛК поэтому вызывал их раз в 50 циклов. как то так:
ST_CONECT:
m_y := m_y + 1;
IF ( m_y MOD 50 ) = 0 THEN
IF i_pOptions^.bServer THEN
o_dnRes := BOOL_TO_DINT( SysSockListen( m_dnSocket, 1 ) );
IF i_pOptions^.ePCL = OVEN_110_v2 THEN
IF o_dnRes < 0 THEN
o_eCondition := ST_CLOSE;
ELSE
o_eCondition := ST_ACCEPT;
END_IF
ELSE
IF o_dnRes = 0 THEN
o_eCondition := ST_WORK;
END_IF
END_IF
ELSIF NOT SysSockConnect( m_dnSocket, ADR( m_SAddress ), SIZEOF( m_SAddress ) ) THEN
o_eCondition := ST_WORK;
END_IF
END_IF





