7.2 Порядок работы с файлом прошивки

Чтение файла прошивки из буфера контроллера

  1. Если контроллер находится в USER-режиме и исполняет конфигурацию, дать команду на остановку исполнения конфигурации, записан в системный регистр «Команда включения/выключения исполнения конфигурации» значение «5600». Для фонового режима чтения, а также при работе по MODBUS, можно пропустить этот шаг.
  2. Установить нулевое смещение окна загрузки конфигурации записью «0» в регистры «Адрес внутри буфера файла прошивки ст.» и «Адрес внутри буфера файла прошивки мл.».
  3. Прочитать из окна 4 байта размера файла. При этом контроллер автоматически увеличит смещение окна на 4 байта.
  4. Прочитать очередной блок файла прошивки. При этом контроллер автоматически увеличит смеще-ние окна на размер прочитанного блока.
  5. Выполнять п. 4 до окончания загрузки файла прошивки. Если на запрос на чтение не пришёл ответ от контроллера, необходимо записать необходимое смещение окна, т.к. контроллер мог его уже увеличить.
  6. По окончанию чтения файла и после проверки CRC прочитанного файла, удалить из его начала 4 байта длины, а также последние 2 байта CRC.

Запись файла прошивки в контроллер (обновление ПО)

  1. Если контроллер находится в USER-режиме и исполняет конфигурацию, дать команду на остановку исполнения конфигурации, записан в системный регистр «Команда включения/выключения исполнения конфигурации» значение «5600». Для фонового режима записи, а также при работе по MOD-BUS, можно пропустить этот шаг.
  2. Прочитать значение регистра «Максимальный размер файла прошивки» и убедиться, что загружа-емый файл помещается в буфер. В противном случае прекратить процедуру загрузки.
  3. К файлу, который необходимо загрузить в контроллер, добавить в начало 4 байта длины файла конфигурации (перед этим увеличив его на 6) и 2 байта CRC (вычисленного файла вместе с байтами длины).
  4. Разбить файл на блоки размером не более 64 байта.
  5. Добавив в начало блока данных необходимое смещение и записать в контроллер одновременно смещение и данные.
  6. Выполнять п. 5 до окончания загрузки файла конфигурации.
  7. По окончанию загрузки файла записать в регистр «Команда окончания загрузки файла прошивки» значение «5502». После этого контроллер проверит CRC файла и если целостность файла не нарушена, обновит своё ПО.