запись данных в массив step7

ПЛК / Децентрализованная периферия
Ответить
Аватара пользователя
gazman
Любитель
Сообщения: 32
Зарегистрирован: 17 апр 2017, 15:50
Откуда: Новомичуринск
Контактная информация:

запись данных в массив step7

Сообщение gazman »

задача записывать данные в массив при нажатии на кнопку. данные это время. это я сделал. при нажатии на кнопку время заносится в отдельный элемент массива. есть проблемы. при нажатии на кнопку запускается счётчик. счёт определяет в какую ячейку массива записывать данные. на нулевой итерации контроллер уходит в ошибку. вот код

Код: Выделить всё

A     I      0.1
      CU    C      1
      L     C      1
      T     #temp    //переменная для сохранения итерации
      L     C      1
      L     20
      >D    
      R     C      1  //сброс счётчика


OPN   "arhive"
      L     #temp
      L     0
      ==D   
      JC    M1        // переход, если нулевая итерации
      L     #temp
      L     16
      ITD   
      *D                // умножение для формирования адреса
      LAR1            //заносим результат умножения в адресный регистр
      L     #REZ      // значение времени, каждый раз разное. заносим в отдельную ячейку массива
      T     DBW [AR1,P#0.0]   //передаём значение времени в массив
M1:   NOP   0
при добавлении OB121 ошибка в контроллере сбрасывается, работе не мешает. но очень режет глаз.
подскажите, что не так. как мне на нулевой итерации не записывать значение в адресный регистр? из-за этого наверное ошибка.

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: запись данных в массив step7

Сообщение ward »

у меня работает без ошибок, тип временных переменных какой? INT? Что в диаг. буфере пишет?

Аватара пользователя
gazman
Любитель
Сообщения: 32
Зарегистрирован: 17 апр 2017, 15:50
Откуда: Новомичуринск
Контактная информация:

Re: запись данных в массив step7

Сообщение gazman »

спасибо за подсказку. передавал данные по адресу ячейки массива, которой не было. ограничил счёт до 19.

ещё один вопрос.
так как я исключаю нулевую операцию, у меня идёт запись с первого элемента массива, а не с нулевого.
т.е. с адреса DBW2.0, а не с DBW0.0.
как сделать, чтобы запись шла с DBW0.0??

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: запись данных в массив step7

Сообщение ward »

Код: Выделить всё

A     I      0.1
      CU    C      1
      L     C      1
      T     #temp    //переменная для сохранения итерации
      L     C      1
      L     20
      >D    
      R     C      1  //сброс счётчика


OPN   "arhive"
      L     #temp
      L     0
      ==D   
      JC    M1        // переход, если нулевая итерации
      L     #temp
      L     1
      -D
      L     16
      ITD   
      *D                // умножение для формирования адреса
      LAR1            //заносим результат умножения в адресный регистр
      L     #REZ      // значение времени, каждый раз разное. заносим в отдельную ячейку массива
      T     DBW [AR1,P#0.0]   //передаём значение времени в массив
M1:   NOP   0

Аватара пользователя
gazman
Любитель
Сообщения: 32
Зарегистрирован: 17 апр 2017, 15:50
Откуда: Новомичуринск
Контактная информация:

Re: запись данных в массив step7

Сообщение gazman »

сердечно благодарю

Ответить