Страница 3 из 7 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 66

Тема: Читаем нестандартный протокол (SysLibCom, SysLibMem)

  1. #21
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,840

    По умолчанию

    Цитата Сообщение от Svorog Посмотреть сообщение
    Спасибо, этот документ читал, но к сожалению, ввиду малого опыта, многое моменты остались непонятны. Может есть живой пример на CFC?
    Графические языки практически не используются для реализации обмена - поскольку в них сложно реализовывать ветвление, циклы и т.д.

  2. #22

    По умолчанию

    Всем доброй ночи! Разбираюсь как работать с библиотекой Syslibcom...Возникли вопросы некоторые скорее касательно настройки портов. Задача состоит в том , чтобы считать через один интерфейс RS232 ПЛК 100 с одного дивайса данные (весовой терминал со своим протоколом) и оправить через другой RS232 на ПК.
    1) Непонятно как при этом настраивать параметры портов в ПЛК Конфигурации???...и нужно вообще их там указывать???? потому как уже на программном уровне задаются параметры скорости и .д. ???
    2) Какой из двух интерфейсов RS232 есть первый порт, а который второй?
    Спасибо!!

  3. #23
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,840

    По умолчанию

    1) При работе с портом через библиотеку - в конфигурации его добавлять не нужно.
    2) RS-232 - COM1, RS-232 Debug - COM4

  4. #24

    По умолчанию

    Спасибо.
    У меня ещё вопрос. В программах полезности, пример работы с COMSERICE есть такой фрагмент..

    (*Вызываем таймер ожидания ответа*)
    T1();
    (*В переменную byte_read мы получаем число принятых байт при чтении порта*)
    byte_read:=SysComRead(port_number, ADR(buf_otvet), 8, 0);
    (*Если мы получили ответ от устройства, то принятую информацию собираем в более большой буфер ответа
    то есть собираем ответ в удобный для обработки формат*)
    IF byte_read>0 THEN
    FOR i:=0 TO byte_read-1 DO
    otvet[l+i]:=buf_otvet[i];
    END_FOR
    l:=l+byte_read;

    (*В данном месте программы необходимо реализовать обработку принятой из порта информации*)
    (*Дабы сильно не перегружать пример информации ниже используется подобие заглушки*)
    (*Известно что длина ответа на используемые в программе запросы сторого 8 байт*)
    (*Поэтому ниже производится анализ размера принятого ответа*)
    (*Как только приходит за отведенный интервал времени нужное количество байт, начинаем обработку принятой команды*)
    IF ( l=7) THEN
    (*Получили нужное количество байт*)
    (*Производим распаковку ответа и записываем его на выход блока*)
    p1:=ADR(otvet[4]);
    p:=ADR(rez);
    p^:=p1^;
    p1:=ADR(otvet[3]);
    p:=p+1;
    p^:=p1^;
    (*Останавливаем таймер ожидания ответа*)
    T1(IN:=FALSE, PT:=T#0s );
    (*Ошибок нет*)
    errors:=0;
    (*Значиния на выходе блока сформированы, их можно использовать в программе*)
    ready:=TRUE;
    (*Переводим блок в режим отправки запроса*)
    status:=1;
    END_IF

    Вопрос по таймеру Т1: Почему вызов таймера написан просто Т1(); без указания времени и переменной на входе...например Т1(in:=TRUE, PT:=#1s);
    Но при этом подразумевается, что этот таймер был включен (шёл отсчёт времени), до тех пор пока не поступила команда
    (*Останавливаем таймер ожидания ответа*)
    T1(IN:=FALSE, PT:=T#0s );
    Мне как то странно ..Неужто, если я просто вызову Т1(); то он у меня сразу запустится без подачи команды на вход???????

  5. #25

  6. #26

    По умолчанию

    Нет. Не заданы..в том то и дело..

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

    По умолчанию

    Цитата Сообщение от Safron Посмотреть сообщение
    Нет. Не заданы..в том то и дело..
    только что посмотрел проект, Вы буквально поняли где смотреть, а таймер задается ниже
    В начали ищите, где разрешение запустить блок, статус принимает значение 1, в кейсе под номером один идет как раз установка параметров для таймера
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  8. #28

    По умолчанию

    Блин.точно. Спасибо.

  9. #29

    По умолчанию

    Хорошая статья! Но стал вопрос можно ли просто читать? Точнее как это сделать?
    Подключить следующей цепочкой ПК ---rs-232--- ПЛК110 (через программу COM Port Toolkit) отправить с ПК данные и увидеть их на ПЛК110 в режиме реально времени? Или нужно знать конкретный пакет (длина, скорость и т.д.)?
    Последний раз редактировалось tomas111; 16.02.2018 в 17:13.

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

    По умолчанию

    Доброго времени.
    Объясните, уважаемые знатоки обмена по Modbus,
    Почему вот здесь на 32 стр. https://cloud.mail.ru/public/JKkZ/bqLHJWaHT авторами протокол называется Modbus RTU, а меня не покидает ощущение,
    что это нечто подобное. Иными словами - возможно ли например при помощи СПК107 по Modbus RTU прочитать данные с этого прибора.
    К RTU привязался потому, что на порту есть еще другие устройства.

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

Похожие темы

  1. Нестандартный протокол
    от SVVSVA в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 08.09.2011, 15:18
  2. нестандартный протокол
    от niklud19511 в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 05.05.2011, 15:02
  3. Нестандартный протокол
    от Евгений Владимирович в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 28.02.2010, 23:22
  4. Codesys и нестандартный протокол для ПЛК
    от Горшунов Сергей в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 23.10.2008, 18:19
  5. Нестандартный протокол
    от Klik в разделе ПЛК1хх
    Ответов: 36
    Последнее сообщение: 03.03.2008, 13:49

Ваши права

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