1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

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

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить
Аватара пользователя

Автор темы
gazman
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 20 янв 2017, 11:48
Имя: Каравкин Павел Николаевич
Страна: Россия
город/регион: Рязань

запись данных в массив 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 ошибка в контроллере сбрасывается, работе не мешает. но очень режет глаз.
подскажите, что не так. как мне на нулевой итерации не записывать значение в адресный регистр? из-за этого наверное ошибка.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17466
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 744 раза
Поблагодарили: 1277 раз

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

Сообщение Jackson »

Советую при цитировании кода пользоваться тэгом CODE, в противном случае может сработать автозамена и код будет искажён.
По вопросам работы Форума можно обратиться по этим контактам.

ZuElecRu
освоился
освоился
Сообщения: 290
Зарегистрирован: 09 авг 2016, 13:49
Имя: Чистилин Андрей Анатольевич
Страна: Россия
город/регион: Малоярославец
Благодарил (а): 31 раз
Поблагодарили: 35 раз

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

Сообщение ZuElecRu »

Пока кнопку держишь, счетчик считает же?
Аватара пользователя

Автор темы
gazman
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 20 янв 2017, 11:48
Имя: Каравкин Павел Николаевич
Страна: Россия
город/регион: Рязань

запись данных в массив 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     1
      -D
      L     16
      ITD   
      *D                // умножение для формирования адреса
      LAR1            //заносим результат умножения в адресный регистр
      L     #REZ      // значение времени, каждый раз разное. заносим в отдельную ячейку массива
      T     DBW [AR1,P#0.0]   //передаём значение времени в массив
M1:   NOP   0
Ответить

Вернуться в «Simatic Step7»