по поводу Сименса, песня другая , во первых можно передавать все с помощью syslog на внешнее устройство которое в сети . А так же с помощью SFC 51 "RDSYSST" System Function и SFC 52 "WR_USMSG" System Function записывать события те которые вам нужны в буфер диагностический и не тока, а потом выбирать что отправлять на внешний сборщик событий. По сути логика такая идет чтение ошибок которо возникает , потом ее запись в буфер или в ДБ определенную и потом отправка нужного события на внешний сборщик.
Так же есть другой вариант, можно по протоколу s7 опрашивать определенные адреса с определенным интервалом с помощью самописного софта .