Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 21

Тема: СП310+ПЛК63+2ТРМ1 У2(работа с библиотеками)

  1. #11
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    503

    По умолчанию

    Передать переменные "А" и "f1" получилось с первого раза, но у меня f1 занимает 4 номер регистра, который в панели относится к системным. Непонятно как поменять номер регистра с 4 на 300 в библиотеке на ПЛК, где конкретно прописывать.
    Изображения Изображения

  2. #12

    По умолчанию

    Цитата Сообщение от EVGEN_ Посмотреть сообщение
    Передать переменные "А" и "f1" получилось с первого раза, но у меня f1 занимает 4 номер регистра, который в панели относится к системным. Непонятно как поменять номер регистра с 4 на 300 в библиотеке на ПЛК, где конкретно прописывать.
    А если подумать? Там же на русском подписано даже.
    Вы же выделили на скрине начальный адрес 4, следующая строка кол-во записываемых регистров 4 , из них,
    два на 32 битное целочисленное типа DINT ( или DWORD или UDINT с адресом 4) и два на REAL, адрес 6.

    Сравните как разбирается на байты целочисленное и как REAL и подумайте, как например передать несколько целочисленных и несколько REAL.
    И как расставить байты, для правильной передачи чисел.
    Последний раз редактировалось kondor3000; 25.04.2024 в 07:56.

  3. #13
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    503

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А если подумать? Там же на русском подписано даже.
    Вы же выделили на скрине начальный адрес 4, следующая строка кол-во записываемых регистров 4 , из них,
    два на 32 битное целочисленное типа DINT ( или DWORD или UDINT с адресом 4) и два на REAL, адрес 6.

    Сравните как разбирается на байты целочисленное и как REAL и подумайте, как например передать несколько целочисленных и несколько REAL.
    И как расставить байты, для правильной передачи чисел.
    Вроде разобрался
    Изображения Изображения

  4. #14

    По умолчанию

    Цитата Сообщение от EVGEN_ Посмотреть сообщение
    Вроде разобрался
    Ну уже лучше)) а теперь замените f2 и f3 на массив f2:ARRAY [0..9] OF REAL; и сможете записать сразу 10 переменных REAL. Регистров будет уже 20.
    Упаковку можно сделать компактней, каждая строка 1 REAL, например
    Код:
     ptr_f2:=ADR(f2);  buffer[1] := ptr_f2^;  ptr_f2:=ptr_f2+1; buffer[0] := ptr_f2^;  ptr_f2:=ptr_f2+1;  buffer[3] := ptr_f2^;   ptr_f2:=ptr_f2+1;  buffer[2] := ptr_f2^;
     ptr_f2:=ptr_f2+1; buffer[5] := ptr_f2^;  ptr_f2:=ptr_f2+1; buffer[4] := ptr_f2^;  ptr_f2:=ptr_f2+1;  buffer[7] := ptr_f2^;   ptr_f2:=ptr_f2+1;  buffer[6] := ptr_f2^;
    Аналогично можно прочитать Массив любых переменных, если они идут подряд.
    Последний раз редактировалось kondor3000; 12.05.2024 в 16:30.

  5. #15
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    503

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Ну уже лучше)) а теперь замените f2 и f3 на массив f2:ARRAY [0..9] OF REAL; и сможете записать сразу 10 переменных REAL. Регистров будет уже 20.
    Упаковку можно сделать компактней, каждая строка 1 REAL, например
    Код:
     ptr_f2:=ADR(f2);  buffer[1] := ptr_f2^;  ptr_f2:=ptr_f2+1; buffer[0] := ptr_f2^;  ptr_f2:=ptr_f2+1;  buffer[3] := ptr_f2^;   ptr_f2:=ptr_f2+1;  buffer[2] := ptr_f2^;
     ptr_f2:=ptr_f2+1; buffer[5] := ptr_f2^;  ptr_f2:=ptr_f2+1; buffer[4] := ptr_f2^;  ptr_f2:=ptr_f2+1;  buffer[7] := ptr_f2^;   ptr_f2:=ptr_f2+1;  buffer[6] := ptr_f2^;
    Аналогично можно прочитать Массив любых переменных, если они идут подряд.
    Вроде так.
    Единственно мне не понятно почему упаковка выглядит именно так и в таком порядке
    Изображения Изображения

  6. #16

    По умолчанию

    Цитата Сообщение от EVGEN_ Посмотреть сообщение
    Вроде так.
    Единственно мне не понятно почему упаковка выглядит именно так и в таком порядке
    А что не понятно то? Есть начальный адрес массива ADR(f2), а дальше адрес каждого следующего байта +1. В буфере Байты и Регистры все подряд, [0] [1] [2] [3].
    Каждый байт надо поставить в правильном порядке ( для панели [1] [0] [3] [2]), например, если переставить [1] и [0] , то поменяются местами байты,
    а если поменять [1] [0] с [3] [2], то поменяются местами регистры. Попробуйте и получите вместо 50.80, что-то типа 2.345e-25.

    Для разных модулей и панелей порядок может быть разный, но для Овена чаще всего такой.
    Последний раз редактировалось kondor3000; 15.05.2024 в 18:17.

  7. #17
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    503

    По умолчанию

    Код:
    ptr_f2:=ADR(f2);  buffer[1] := ptr_f2^;  ptr_f2:=ptr_f2+1; buffer[0] := ptr_f2^;  ptr_f2:=ptr_f2+1;  buffer[3] := ptr_f2^;   ptr_f2:=ptr_f2+1;  buffer[2] := ptr_f2^;
     ptr_f2:=ptr_f2+1; buffer[5] := ptr_f2^;  ptr_f2:=ptr_f2+1; buffer[4] := ptr_f2^;  ptr_f2:=ptr_f2+1;  buffer[7] := ptr_f2^;   ptr_f2:=ptr_f2+1;  buffer[6] := ptr_f2^;
    Я про код.
    Например почему буфферы идут не [0] [1] [2] [3] , а [1] [0] [3] [2]?
    Или, что значит запись ptr_f2^?

  8. #18
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    503

    По умолчанию

    А, что теперь осталось, чтобы получать данные с ТРМ и передавать в него же с hmi через плк63 через интерфейс?

  9. #19

    По умолчанию

    Цитата Сообщение от EVGEN_ Посмотреть сообщение
    А, что теперь осталось, чтобы получать данные с ТРМ и передавать в него же с hmi через плк63 через интерфейс?
    Выше ещё дописал,
    а что осталось, прочитать данные с ТРМ, присвоить в программе в переменные для записи в панель и отправить.

    ptr_f2^ это указатель, вы указываете положить данный байт в адрес такой то, +1 к начальному адресу
    Последний раз редактировалось kondor3000; 15.05.2024 в 19:03.

  10. #20
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    503

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Для разных модулей и панелей порядок может быть разный, но для Овена чаще всего такой.
    Этот порядок искать в руководстве для панели? И я как понимаю, если будет нормальный плк, то есть не такой старичок как плк63 с библиотеками, то и заморачиваться с порядком байтов и прочей упаковкой не придется?

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Работа с рецептами СП310 и ПЛК110[M02]
    от Iv_Str_NDT в разделе Панели оператора (HMI)
    Ответов: 66
    Последнее сообщение: 13.02.2022, 18:35
  2. СП310 и блокировка кнопки паролем. работа с календарем.
    от Дмитрий Александрович в разделе Панели оператора (HMI)
    Ответов: 12
    Последнее сообщение: 11.10.2021, 18:46
  3. СП310 и ступенчатое задание переменной. Работа с паролями.
    от Дмитрий Александрович в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 06.08.2021, 17:14
  4. Ответов: 3
    Последнее сообщение: 28.12.2010, 07:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •