Зачем нужен регистр FS в PMP20 и почему он не читается?
FS — область защиты авторских прав на программу: в неё можно записать значение, но нельзя прочитать — при чтении всегда возвращается 0. Диапазон общий для серии — FS0–FS47, точные границы для конкретной модели видно в мониторе данных среды PROMPOWER PLC Studio.
Как это работает на практике. Разработчик записывает в FS ключ (в том числе командами Modbus — запись по сети разрешена, чтение нет), а программа сравнивает содержимое FS с константой. Если ключ не совпал, машина не запускается. Скопировать значение из контроллера не получится: ни чтением, ни сравнением с регистром — FS сравнивается только с константой.
Ограничения, о которых надо знать заранее:
- Значение FS нельзя сравнить с регистром D или HD, только с константой K или H.
- FS живёт во flash-памяти, поэтому на него распространяются те же правила, что на FD: условие записи — нарастающий фронт, частая запись изнашивает память.
- Данные сохраняются даже при разряженной батарее.
Регистры FS — не единственный способ защиты. В PMP20 есть три режима загрузки: обычный, с паролем и секретный. В секретном режиме выгрузить программу из контроллера нельзя в принципе — «программы не существует», но и откатиться к предыдущей версии тоже не выйдет. Режим с паролем позволяет выгружать программу после ввода пароля; при включённой опции «загружаемая программа должна быть сначала расшифрована» забытый пароль означает заблокированный контроллер.
Прикреплённая документация
Георгий Жуков
Ведущий инженер