Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 36

Тема: ПЛК73+чтение данных по modbus rtu.

  1. #21

    По умолчанию

    Цитата Сообщение от Ильяс94 Посмотреть сообщение
    Вложение 62287

    Тяжеловато мне в ST ориентироваться( Пытаюсь Ваш пример соотнести с примером FBD. Не могу правильно склеить два регистра во FLOAT, данные на выходе не правильно отображаются(
    Во первых таким способом из двух байт, вы соберёте только WORD, REAL- состоит из 4 байт или из 2 WORD.
    На FBD это займёт 8 строк для 1 REAL, см. скрин 1 Получение флоат.jpg
    а на ST одну строку, при чём с правильным расположением байт. Нафиг этот FBD.
    Код:
     ptr_D:=ADR(d); ptr_D^:=buffer[3];       ptr_D:=ptr_D+1; ptr_D^:=buffer[2];      ptr_D:=ptr_D+1; ptr_D^:=buffer[1];       ptr_D:=ptr_D+1; ptr_D^:=buffer[0];

    У вас подход неверный, копируете блок полностью к себе в программу, а вызываете его уже в CFC квадратиком. Привыкайте комбинировать языки. Можно через экспорт, импорт, можно просто копипастом, чем ST и хорош. И используете блок, как например таймер, только ФБ пользовательский, а не библиотечный. Вызывать, вставлять название ФБ можно через F2. На скрине REAL получен из 2 WORD.
    1 Функц блок на ST.jpgНадеюсь вы данные правильно на вход подаёте из адресов REAL и в правильной последовательности.

    И ещё, не надо всё сразу копировать в одну программу. Берёте пример опроса блока на ST и его используете, изменяя под себя. Потом след кусок и т. д. Потом просто соберёте программу из рабочих кусков.
    Последний раз редактировалось kondor3000; 26.08.2022 в 10:06.

  2. #22

    По умолчанию

    kondor3000, Вы так человека еще больше запутаете.

    Зачем "10" промежуточных операций? Сначала клеим байты в WORD'ы, потом WORD'ы в REAL'ы... А сразу 4 байта в REAL в правильной последовательности одной функцией?

    Вообще, ТС нужно для начала разобраться с типами значений, а то он, на мой взгляд, слишком далеко решил "шагнуть" с ходу... "не зная броду"...
    Последний раз редактировалось Spawn; 26.08.2022 в 11:30.

  3. #23

    По умолчанию

    Spawn, вы плохо посмотрели, первая половина последнего сообщения относится к склейке REAL прямо из буфера.
    Он сам себя путает, не зная основ.
    Проще уже некуда, взял пример на ST, адаптировал под себя, поменяв адрес модуля и адреса регистров,
    нет он взял FBD, где надо ещё дописывать большую часть, только потому, что пример для ПЛК63
    Последний раз редактировалось kondor3000; 26.08.2022 в 14:20.

  4. #24

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Spawn, вы плохо посмотрели, первая половина последнего сообщения относится к склейке REAL прямо из буфера.
    Он сам себя путает, не зная основ.
    Проще уже некуда, взял пример на ST, адаптировал под себя, поменяв адрес модуля и адреса регистров,
    нет он взял FBD, где надо ещё дописывать большую часть, только потому, что пример для ПЛК63
    Я почему то подумал, что на FBD будет проще адаптировать под себя. Попробую на ST.

  5. #25

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Spawn, вы плохо посмотрели, первая половина последнего сообщения относится к склейке REAL прямо из буфера.
    Он сам себя путает, не зная основ.
    Проще уже некуда, взял пример на ST, адаптировал под себя, поменяв адрес модуля и адреса регистров,
    нет он взял FBD, где надо ещё дописывать большую часть, только потому, что пример для ПЛК63
    Адаптировал ST по свои регистры. Не правильно отображаются данные, Надо правильно разобрать буфер, не могу понять пока, что как это сделать правильно. В карте регистров ведомого устройства, написано что данные типа float.

  6. #26

    По умолчанию

    Цитата Сообщение от Ильяс94 Посмотреть сообщение
    Адаптировал ST по свои регистры. Не правильно отображаются данные, Надо правильно разобрать буфер, не могу понять пока, что как это сделать правильно. В карте регистров ведомого устройства, написано что данные типа float.
    Буфер это массив байт, счёт идёт с нуля, [0], [1], [2], [3], ( условно назовём их 1,2,3,4),
    в переменной REAL 4 байта или 2 регистра, соответственно если отображение неправильное, значит есть 3 варианта, переставить их как:
    2143- переставить байты,
    3412 - переставить регистры,
    4321 - переставить байты и регистры.

    Какие адреса вы читаете? Выложите пример своего проекта ( в расширенном режиме).
    Последний раз редактировалось kondor3000; 29.08.2022 в 20:47.

  7. #27
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,278

    По умолчанию

    Можно вообще ничего не делать а прям на девайсе настроить порядок байт.
    Автор хоть РЭ на свой девайс читал на пол-страницы выше картинки из поста #19 ?

  8. #28

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Можно вообще ничего не делать а прям на девайсе настроить порядок байт.
    Автор хоть РЭ на свой девайс читал на пол-страницы выше картинки из поста #19 ?
    Действительно, порядок байт можно настроить в приборе 1 Порядок байт в ИМ2300.jpg
    Но я бы для тренировки переставил в программе), как написал выше. И главное, по какому адресу читаете ?
    Физический и логический отличаются на 1, от этого тоже зависит правильность чтения.
    Последний раз редактировалось kondor3000; 29.08.2022 в 23:26.

  9. #29

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Во первых таким способом из двух байт, вы соберёте только WORD, REAL- состоит из 4 байт или из 2 WORD.
    На FBD это займёт 8 строк для 1 REAL, см. скрин 1 Получение флоат.jpg
    а на ST одну строку, при чём с правильным расположением байт. Нафиг этот FBD.
    Код:
     ptr_D:=ADR(d); ptr_D^:=buffer[3];       ptr_D:=ptr_D+1; ptr_D^:=buffer[2];      ptr_D:=ptr_D+1; ptr_D^:=buffer[1];       ptr_D:=ptr_D+1; ptr_D^:=buffer[0];

    У вас подход неверный, копируете блок полностью к себе в программу, а вызываете его уже в CFC квадратиком. Привыкайте комбинировать языки. Можно через экспорт, импорт, можно просто копипастом, чем ST и хорош. И используете блок, как например таймер, только ФБ пользовательский, а не библиотечный. Вызывать, вставлять название ФБ можно через F2. На скрине REAL получен из 2 WORD.
    1 Функц блок на ST.jpgНадеюсь вы данные правильно на вход подаёте из адресов REAL и в правильной последовательности.

    И ещё, не надо всё сразу копировать в одну программу. Берёте пример опроса блока на ST и его используете, изменяя под себя. Потом след кусок и т. д. Потом просто соберёте программу из рабочих кусков.
    Безымянный.png


    Я получил нужные мне переменные. Как совместить ST и FBD (или CFC) что бы можно было подключить библиотеку showreal для вывода на ЖКИ ПЛК73? Я пробую добавить действие ставлю блок showreal ко входу блока пишу название переменной, загружаю в контроллер. В итоге экран контроллера пустой. Так же пробовал добавлять объект в виде ФБ и программы, делаю там аналогично, так же пустой экран.Безымянный.png
    Изображения Изображения
    • Тип файла: png 222.png (397.8 Кб, Просмотров: 7)

  10. #30

    По умолчанию

    Цитата Сообщение от Ильяс94 Посмотреть сообщение
    Безымянный.png


    Я получил нужные мне переменные. Как совместить ST и FBD (или CFC) что бы можно было подключить библиотеку showreal для вывода на ЖКИ ПЛК73? Я пробую добавить действие ставлю блок showreal ко входу блока пишу название переменной, загружаю в контроллер. В итоге экран контроллера пустой. Так же пробовал добавлять объект в виде ФБ и программы, делаю там аналогично, так же пустой экран.Безымянный.png
    На вашем скрине вызов блока серым цветом, т. e. он не вызван в программе.
    Для чего вам скрин примера вывода блока давал? и Писал, что блоки можно выводить как например Таймеры. Надо объявить экземпляр ФБ в верхней части, например
    TON1 : TON ;
    и вызвать в самой программе. Это делается с помощью F2 на ST.

    У вас ShowReal - это функция и её проще вызвать прямо в программе, тоже по F2, выбрать библиотеку и нужную функцию. А потом подставить на входы нужное.
    Смотри скрин, вызов функции вставил в начале программы 1 ShowReal.jpg
    Последний раз редактировалось kondor3000; 31.08.2022 в 14:30.

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

Похожие темы

  1. Ответов: 6
    Последнее сообщение: 23.05.2022, 12:59
  2. ПЛК73: Чтение и запись переменных из конфигурации ПЛК
    от Солнечный заяц в разделе ПЛК63/73
    Ответов: 0
    Последнее сообщение: 02.03.2021, 16:24
  3. ПЛК73 Чтение МВ110-16Д через Modbus
    от Зинец Олег в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 05.11.2020, 18:13
  4. Чтение/запись данных по Modbus панели СП310
    от _Алексей_ в разделе Панели оператора (HMI)
    Ответов: 7
    Последнее сообщение: 29.08.2018, 07:43
  5. Ответов: 5
    Последнее сообщение: 16.09.2016, 00:56

Ваши права

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