Страница 6 из 7 ПерваяПервая ... 4567 ПоследняяПоследняя
Показано с 51 по 60 из 68

Тема: MasterSCADA4D + Ethernet + произвольный 16-тиричный код (HEX)

  1. #51
    Пользователь
    Регистрация
    22.05.2018
    Адрес
    Сочи, Лазаревское
    Сообщений
    91

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ну начните хотя бы с той посылки которую отправляете, получается или нет. Если знаете какую команду посылаете, значит известна и её длинна
    Передаю 5 байт.
    Написал 5 - работает!
    Осталось понять в каком формате писать HEX

  2. #52
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,602

    По умолчанию

    Цитата Сообщение от Vetal10 Посмотреть сообщение
    Передаю 5 байт.
    Написал 5 - работает!
    Осталось понять в каком формате писать HEX
    HEX или DEC это только представление для человека, для машины это значение байта всё равно в единичках и ноликах
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #53
    Пользователь
    Регистрация
    22.05.2018
    Адрес
    Сочи, Лазаревское
    Сообщений
    91

    По умолчанию

    Посылку формирую через ST

    MESSAGE_IN_1 := '$10$40$01$41$16'; // передаваемое сообщение
    MESSAGE_OUT := STRING_TO_BYTE_ARRAY(IN:= MESSAGE_IN_1, ENCODING:= );

    Получаю отправляемое сообщение
    1.png

  4. #54
    Пользователь
    Регистрация
    22.05.2018
    Адрес
    Сочи, Лазаревское
    Сообщений
    91

    По умолчанию

    Переменная ST

    1.png

  5. #55
    Пользователь
    Регистрация
    22.05.2018
    Адрес
    Сочи, Лазаревское
    Сообщений
    91

    По умолчанию

    Кусок программы ST

    1.png

  6. #56
    Пользователь
    Регистрация
    22.05.2018
    Адрес
    Сочи, Лазаревское
    Сообщений
    91

    По умолчанию

    Добил я его. Заработало!

    1.png

    Видимо нельзя на "Универсальный протокол COM порта" вешать два ФБ "ComPort".
    Итак, в ST формирую посылку из "$10$40$01$41$16" (всё-таки "$" !!!), получаю массив (ну или вижу что получаю) "[16, 64, 1, 65, 22]" - это отправляется в Com и приходит правильный ответ в десятеричном формате. СКАДА без спроса всё преобразует в DEC.
    Пришёл ответ "229" в DEC - это мои долгожданные "E5" на команду HEX "10 40 01 41 16".
    Последний раз редактировалось Vetal10; 03.08.2024 в 03:04.

  7. #57
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,030

    По умолчанию

    Посмотрите как формировать массив сразу байтами, на кой строки то применять?
    Только правильность синтаксиса в ST соблюсти
    В С# было бы
    byte[] mass = new byte[] {0x10, 0x40, , , , 0x16};
    Вместо 0x10 можно написать десятичным 16 и так далее.
    А вы делаете двойную работу, в строку, потом будете из строки, в то время как протоколы байтовые если можно так выразиться

    Ну Scada и не обязана работать как TestAll или другие программы, но конечно хорошим тоном считается показывать обмен именно в hex для com порта, либо строкой, если протокол символьный
    Последний раз редактировалось melky; 03.08.2024 в 06:49.

  8. #58
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,030

    По умолчанию

    Но мне во всем этом непонятно одно.
    Физически прибор у вас один или два?
    Если один, он у них что, мульти протокольный? Одновременно можно использовать или MBus или протокол Пульсар?

    Потому что все это 10 40 и т.д. с возвратом E5 это от MBus протокола, а то, что вы показали на скрине TestAll это классический Пульсар протокол.

  9. #59
    Пользователь
    Регистрация
    22.05.2018
    Адрес
    Сочи, Лазаревское
    Сообщений
    91

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Но мне во всем этом непонятно одно.
    Физически прибор у вас один или два?
    Если один, он у них что, мульти протокольный? Одновременно можно использовать или MBus или протокол Пульсар?

    Потому что все это 10 40 и т.д. с возвратом E5 это от MBus протокола, а то, что вы показали на скрине TestAll это классический Пульсар протокол.
    Прибор один. Протокол возможно, что Пульсаровский но работает эта дрянь через преобразователь RS485 <-> M-BAS. Скажу более, я перепробовал несколько программ M-BAS и ридер и OPC сервер. На все запросы M-BAS даёт ответ. Что они там намутили я не знаю.

    Если хочешь могу дать доступ к нему. Единственно что мне надо - подготовить для этого ноут, т.е не прям сразу, а ближе к вечеру.

    Дал команду которая мне нужна: "$11$57$35$85$01$0E$80$00$00$00$01$00$3D$6E"

    Получаю: Ошибка: Внутренняя ошибка : [string "chunk"]:148: unfinished string near <eof>
    Последний раз редактировалось Vetal10; 03.08.2024 в 11:10.

  10. #60
    Пользователь
    Регистрация
    22.05.2018
    Адрес
    Сочи, Лазаревское
    Сообщений
    91

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    HEX или DEC это только представление для человека, для машины это значение байта всё равно в единичках и ноликах
    Вот, ну АБСОЛЮТНО ВСЕ !!!, твои советы дельные! Но ты их говоришь, как намёками. Рассказывай народу подробнее. Сказал "А", говори "Б". Я голову сломал, чтоб воплотить твой совет.
    А всё именно так как ты сказал.

    Вместо: MESSAGE_IN_1 := '$11$57$35$85$01$0E$80$00$00$00$01$00$3D$6E';
    MESSAGE_OUT := STRING_TO_BYTE_ARRAY(IN:= MESSAGE_IN_1, ENCODING:= );

    Сделал:
    VAR_OUTPUT
    MESSAGE_OUT: ARRAY[*] OF BYTE := 17,87,53,133,1,14,128,0,0,0,1,0,61,110;
    END_VAR

    И получил в ответ: [17, 87, 53, 133, 1, 14, 0, 0, 0, 0, 1, 0, 34, 174]
    Что и ожидал: 11 57 35 85 01 0E 00 00 00 00 01 00 22 AE.

    И совсем забыл. СПАСИБО !!!

    P.S. У ФБ "ComPort" на входе "Message" установлено "String". И хоть что ты ему пиши: и 16#11 и $11 и &H10 он все "$", "&H", "#", пробел, запятую ВОСПРИНИМАЕТ КАК "String". и соответственно перекодирует КАЖДЫЙ символ.
    Последний раз редактировалось Vetal10; 03.08.2024 в 13:06.

Страница 6 из 7 ПерваяПервая ... 4567 ПоследняяПоследняя

Похожие темы

  1. MasterSCADA4D и ВП110
    от Smey232 в разделе ПЛК (среда MasterSCADA 4D)
    Ответов: 5
    Последнее сообщение: 15.05.2022, 14:01
  2. Произвольный прибор по modbus
    от Pohilkin в разделе Облачный сервис OwenCloud
    Ответов: 3
    Последнее сообщение: 19.11.2021, 18:56
  3. Опросить произвольный регистр по RS-485
    от Arthur.Aleksandrov в разделе Среда программирования OWEN Logic
    Ответов: 11
    Последнее сообщение: 29.05.2020, 18:53
  4. СМИ2, произвольный переход на заводские настройки
    от Иван Хулиган в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 09.10.2019, 09:08
  5. Ответов: 1
    Последнее сообщение: 29.11.2013, 06:03

Метки этой темы

Ваши права

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