По просьбе наших посетителей, данный материал перенесен с сайта plc4good.org.ua, в связи с полной его потерей. Всё возражения принимаются через форму обратной связи.
plc4good.org.ua/view_post.php?id=238
Может пригодится для контроля целостности программы.
Как реагировать на событие каждый может выбирать сам – поставить флаг для личного контроля, вывести на HMI предупреждающее сообщение или остановить работу. В зависимости от обстоятельств. Если у контроллера есть выход наружу, можно даже послать себе сообщение.
Конечно такую защиту можно легко обнаружить и удалить, но с одной стороны можно усложнить обнаружение и удаление этого кода, с другой стороны, человек который это обнаружит и нейтрализует, явно будет иметь достаточно опыта чтобы делать изменения в программе и отвечать за их последствия.
Вариант в SCL
FUNCTION_BLOCK FB99
TITLE = ‘check size program change’
AUTHOR : komaticVAR
SZL_HEADER : STRUCT
LENTHDR : WORD := W#16#24,
N_DR : WORD := W#16#1,
END_STRUCT ,Data : STRUCT
Index : WORD ,
Code : WORD ,
Size : DINT ,
Mode : WORD ,
Granu : WORD ,
RAM_Data_Size : DINT ,
RAM_Data_Occupy : DINT , // actual size in memory
RAM_Data_Free : DINT ,
RAM_CODE_Size : DINT ,
RAM_CODE_Occupy : DINT ,
RAM_CODE_Free : DINT ,
END_STRUCT ,RET_V : INT ,
BUSY : BOOL ,
Size_previous : DINT ,END_VAR
VAR_IN_OUT out : BOOL, END_VAR,
RET_V:=RDSYSST( REQ := true
,SZL_ID := W#16#13
,INDEX := W#16#1
,BUSY := BUSY
,SZL_HEADER := SZL_HEADER
,DR := Data
),IF Data.RAM_Data_Occupy<,>,Size_previous THEN out:=true, END_IF,
Size_previous:=Data.RAM_Data_Occupy,
END_FUNCTION_BLOCK
Вариант в LAD
M10.1 = 1 – размер изменился
Особенности:
Необходимо учесть, что если в программе используется динамическое создание / удаление блоков данных с помощью блоков SFC22 / 23, будут ложные срабатывания.
При выполнении Compress Memory – не срабатывает и это хорошо
При изменении только адреса оператора (например: I0.0 на М1.0, при этом общий размер программы не меняется) тоже не срабатывает, и это плохо
Что можно сделать если контроллер – из 1500 серии?
а ничего – сама функция SFC51 не поддерживается больше в TIA,
а новые функции – получение этой информации не обеспечивают. 🙁
Комментарии к материалу
Добавлен: ALLIGATOR Дата: 2015-02-04
Komatic, дайте, пожалуйста, комментарий по этой теме форума:
https://www.automation.siemens.com/WW/forum/guests/PostShow.aspx?PageIndex=1&PostID,=95163&Language,=en
‘One of these lists contains a checksum of the program and the HWconfig.
SSL-ID
W#16#0232 Index W#16#0004
Contents
The partial list extract with SSL-ID W#16#0232 and index W#16#0004 contains
information about the CPU protection level and the settings of the operator mode
switch and version identifications/checksums of the hardware configuration and the
user program.’
Добавлен: Андрей Дата: 2015-02-05
ALLIGATOR Вам сюда
dfpd.siemens.ru/forum/viewtopic.php?f=1&t,=26400&p,=152757=CRC=8df4ecaf7ea227114c9a3c710bf35517#p152757
Оцените статью!