Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 24

Тема: ПЛК + Логика СПГ761

  1. #1
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию ПЛК + Логика СПГ761

    Добрый день!
    В общем начал разбираться с получением данных из Логики.
    И начинаю потихоньку натыкаться на вопросы:

    Есть сама Логика СПГ761
    Есть контроллер ПЛК110-32

    Попытавшись использовать бибку от СПГ741 - результатов не возымело.

    Поэтому подключив Логику к ком порту компа - начал искать варианты решения проблемы.

    Есть документ (во вложении)
    Который описывает взаимодействие с похожим прибором, НО отправляя посылку в прибор - ответа мы не получаем.

    Пришел к следующему - подключив к компьютеру СПГ, я могу программой запрашивать данные, программа идет вместе с прибором.
    Взял сниффер ком порта и попробовал посмотреть какие же запросы отсылает программа в прибор. (Скрин СПГ_1)

    Взял прогу, которая умеет отправлять данные в ком порт.
    И при соединении с ком портом она выдает следующую инфу (Скрин СПГ_2)
    При попытке в прямую отправить строку, что отправляет программа <dle><soh><dle><us><gs><dle><stx><ht><ht><ff><dle> <etx><dle><soh><dle><us><gs><dle><stx><ht><ht><ff> <dle><etx>- результата нет.

    Я так понимаю, вопрос в настройках при обмене. ПРограмма производителя производит одни настройки порта, а моя программа - другие.
    Вопрос вот в чем - каким образом настраивается само соединение?
    Сниффер выдает только результат команды (СОМ закрыт, СОМ открыт и т.д.)
    Но можно же и поменять эти настройки?
    Хотелось бы узнать как

    Гугл активно используется, но пока не могу докопаться до истины.</etx></dle></ff></ht></ht></stx></dle></gs></us></dle></soh></dle></etx></dle></ff></ht></ht></stx></dle></gs></us></dle></soh></dle>
    Изображения Изображения
    Вложения Вложения
    • Тип файла: pdf spbus.pdf (709.1 Кб, Просмотров: 27)
    Последний раз редактировалось приборист; 10.06.2014 в 18:18.

  2. #2
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Попробовал опросить прибор программой Пролог - опрашивается.

    И самое интересное - у него есть момент - опрос прибора 94х\74х и там он формирует запрос с 16 FF и последовательностью 10 FF 3F 00 00 00 00 C1 16, как и написано в документации (на теплосчетчик 943)

    А потом начинает опрашивать 96х\76х и запрос уже другой 10 01 10 1F 1D 10 02 09 30 09 30 30 33 0C 10 03 C5 15

    Видимо протокол поменяли...

    Написал письмо в Логику, может пришлют. Хотя сомневаюсь

    Хм.
    Научился получать ответ на запрос, правда в одной программе надо запрашивать так:
    $10$01$10$1F$1D$10$02$09$30$09$30$30$33$0C$10$03$C 5$15
    А в другой так:
    #10#01#10#1F#1D#10#02#09#30#09#30#30#33#0C#10#03#C 5#15
    Последний раз редактировалось приборист; 05.06.2014 в 15:08.

  3. #3

    По умолчанию

    Протокол опроса простой и хорошо описан. Если есть железо для экспериментов, то проблем быть не должно. Только что-то непонятно - прибор Логика СПГ761, а протокол для Тепловычислителя СПТ943.
    Последний раз редактировалось Newcomer; 05.06.2014 в 15:24.

  4. #4
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Протокол опроса простой и хорошо описан. Если есть железо для экпериментов, то проблем быть не должно.
    Проблема в том, что он не актуален.
    В том то и дело

    Этот протокол для старых версий приборов (СПГ741 и СПТ943).

    А для новых - описания нет.

  5. #5
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Итак, посылая запрос в прибор - я получаю ответ.
    Правда получаю в десятичном формате, а потом необходимо переделывать в ASCII, но это не проблема.

    Наткнулся на проблему подсчета CRC.
    Заявлено что CRC считается вот так:


    Я нашел аналогичный код на ST, вот такой:

    Функция crc16 по полиному 0x1021 в CoDeSys на ST:

    -------------------------------
    FUNCTION crc16_1021 : WORD

    VAR_INPUT
    pcBlock: POINTER TO BYTE;
    len: WORD;
    END_VAR

    VAR
    crc, i, w: WORD;
    END_VAR
    -------------------------------
    crc := 16#FFFF;
    WHILE (LEN > 0) DO
    w := pcBlock^;
    pcBlock := pcBlock + 1;
    w := SHL(w,8);
    crc := crc XOR w;
    FOR i := 0 TO 7 DO
    IF ((crc AND 16#8000) <> 0) THEN
    crc := SHL(crc,1) XOR 16#1021;
    ELSE
    crc := SHL(crc,1);
    END_IF
    END_FOR
    LEN := LEN - 1;
    END_WHILE
    crc16_1021 := crc;
    RETURN;
    Но, толи лыжи не едут, толи ...
    В общем неправильно он считает сумму.

    Вопрос к знатокам - действительно ли код на СТ выполняет именно то, что на скрине? Си не знаю, к сожалению
    Изображения Изображения
    • Тип файла: png CRC.PNG (102.4 Кб, Просмотров: 190)

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

    По умолчанию

    а crc_gen из oscat что говорит ?
    необходим еще для работы REFLECT и REVERSE из этой же библиотеки.

    Правда работает только от 4 байт...

  7. #7
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    а crc_gen из oscat что говорит ?
    необходим еще для работы REFLECT и REVERSE из этой же библиотеки.

    Правда работает только от 4 байт...
    Если параметры задаю такие:
    CRC-16/CCITT-FALSE 16 1021 FFFF F F 0
    То считает так же, как и функция выше.

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

    По умолчанию

    функция возвращает полный CRC, его на байты еще разделить нужно... не забыли.

  9. #9
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    функция возвращает полный CRC, его на байты еще разделить нужно... не забыли.
    Я его загоняю в калькулятор, перевожу из Dec в Hex и вижу 2 байта.
    Переделал с разбором в массив из 2 байтов - то же самое.

    Наверное я косячу где-то в байтах, которые в подсчет CRC идут.

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

    По умолчанию

    А вы только данные расчитываете ?, там еще речь и про стаффинг символы.
    Последний раз редактировалось melky; 10.06.2014 в 19:40.

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

Похожие темы

  1. СП-270 и ЛОГИКА
    от приборист в разделе Панели оператора (HMI)
    Ответов: 14
    Последнее сообщение: 05.10.2018, 15:47
  2. ПЛК100 + "Логика" СПТ943
    от kristow в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 06.08.2018, 16:37
  3. САУ-МП алгоритм 20: логика работы
    от Roman62rus в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 09.08.2013, 11:58
  4. Нечеткая логика в CoDeSys
    от Fallensky в разделе ПЛК1хх
    Ответов: 38
    Последнее сообщение: 09.07.2011, 14:01

Ваши права

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