Страница 2 из 29 ПерваяПервая 123412 ... ПоследняяПоследняя
Показано с 11 по 20 из 341

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,070

    По умолчанию

    Проктология по фоткам

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

    По умолчанию

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

  3. #3

    По умолчанию

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

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

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

    По умолчанию

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

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

  5. #5

    По умолчанию

    Цитата Сообщение от 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.

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

    По умолчанию

    Цитата Сообщение от 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^;
    Аналогично можно прочитать Массив любых переменных, если они идут подряд.
    Вроде так.
    Единственно мне не понятно почему упаковка выглядит именно так и в таком порядке
    Изображения Изображения

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

    По умолчанию

    Код:
    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. #8
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    723

    По умолчанию

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

  9. #9

    По умолчанию

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

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

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

    По умолчанию

    kondor3000 ,спасибо за ответы и терпение)!

    Теперь получается мне надо использовать код из двух разных примеров, один для чтения с ТРМ и второй для записи в панель?
    Тогда их как лучше оформить? Поместить оба в PLC_PRG или создать основную программу в CFC, а код с функцией чтения и записи оформить как два отдельных функциональных блока на ST? Но в итоге я как понимаю, что в первом, что во втором случае надо будет разобраться в коде поглубже, чтобы понять, что переименовать, что можно убрать, а что надо будет, например с функционального блока перенести в основную часть PLC_PRG
    Изображения Изображения

Страница 2 из 29 ПерваяПервая 123412 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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