Страница 5 из 31 ПерваяПервая ... 3456715 ... ПоследняяПоследняя
Показано с 41 по 50 из 303

Тема: Подключение устройств с нестандартными протоколами

  1. #41

    По умолчанию

    Вопрос для разработчиков. В нашем проекте рассматривается вопрос использование устройств ML-OEM на базе сетевой технологии 1-Wire от Dallas Semiconductor Corp. (http://www.elin.ru/1-Wire). В частности компоненты: ML38H (на базе однопроводного компонента DS2438),
    ML20S(на базе однопроводного компонента DS18S20) и ветвителя шины данных ML09 (на базе однопроводного компонента DS2409). Можно ли для контроллера ПЛК100 разработать программу для работы с данными устройствами?

  2. #42

    По умолчанию

    несомненно. Существуют преобразователи 232->1-Wire. Дальше пишется программа для обмена с устройствами. У нас в библиотеке UNM.lib даже реализована функция для подсчета контрольной суммы.

  3. #43

    По умолчанию

    внутренняя перемычка нарисована между 9 и 11 в ПЛК154, может быть между 8 и 11?
    Изображения Изображения
    • Тип файла: gif 1.gif (5.7 Кб, Просмотров: 219)

  4. #44

    По умолчанию

    Цитата Сообщение от Crazy Посмотреть сообщение
    внутренняя перемычка нарисована между 9 и 11 в ПЛК154, может быть между 8 и 11?
    Откуда рисунок?
    Вы правы, должна быть 8 и 11.

  5. #45

    По умолчанию

    Цитата Сообщение от Kirill Посмотреть сообщение
    Откуда рисунок?
    Вы правы, должна быть 8 и 11.
    Странный вопрос. Инструкция к прибору.
    Вероятно результат copy/paste.

  6. #46

    По умолчанию

    Цитата Сообщение от Crazy Посмотреть сообщение
    Странный вопрос. Инструкция к прибору.
    Вероятно результат copy/paste.
    Посмотрел в свежей версии руководства. Там все корректно. В любом случае, спасибо.

  7. #47

    Post а5 глупые вопросы :-)

    Привет всем! может кто проконсультирует как работать с ком портом. У меня считывание данных пришедших в компорт работает, а вот отправка данных из компорта пока не получилось. Использую RS232 (9-и пиновый). За основу взят кусок программы «sms_send_example.zip» выложенной на сайте, имена и типы переменных теже :-). Значение bCurentWork ввожу руками из кодесис.

    CASE bCurentWork OF
    0: ; (*Тута отсиживаемся после непосильной работы с компортом*)
    (*1- Открытие компорта*)
    (*2-Отправка сообщения snd_str*)
    (*3-Считываем сообщение*)

    1: IF NOT port_opened THEN (*Открываем порт*)
    com_handle:=SysComOpen(com_num);
    IF com_handle<>16#FFFFFFFF THEN
    port_init:=TRUE;
    ELSE
    SysComClose(com_num);
    com_handle:=SysComOpen(com_num);
    port_init:=TRUE;
    END_IF (*Настраиваем скорость*)
    com_set.Port:=com_num;
    com_set.dwBaudRate:=9600;
    com_set.byParity:=0;
    com_set.dwTimeout:=0;
    com_set.byStopBits:=1; (* *)
    com_set.dwBufferSize:=0;
    com_set.dwScan:=0;
    res:=SysComSetSettings(com_num,ADR(com_set)); (*Успешно открыли*)
    IF NOT res THEN
    port_opened:=TRUE;
    END_IF
    END_IF
    bCurentWork:=0;

    2: (*Вот тут что-то не так*)
    SysComWrite(com_num, ADR(snd_str), LEN(snd_str), 0);
    bCurentWork:=0;

    3: sz:=SysComRead(com_num,ADR(rcvBUF),1024,0);
    IF sz<>0 THEN (*Если данные есть то получаем строку*)
    FOR iter:=0 TO sz-1 DO
    a_char:=ADR(rcvBuf[iter]);
    rcvStr:=CONCAT(rcvStr,LEFT(a_char^,1) );
    END_FOR
    END_IF
    (* bCurentWork:=0; это потом обнулим данные*)
    END_CASE;

  8. #48

    По умолчанию

    1. Между открытием порта и настройкой нужна пауза 1-2 мс.
    2. Аналогично после настройки.
    3. А LEN(snd_str) точно !=0 ?

  9. #49

    Post

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    1. Между открытием порта и настройкой нужна пауза 1-2 мс.
    2. Аналогично после настройки.
    3. А LEN(snd_str) точно !=0 ?
    1) вот вставил паузу между открытием порта и настройкой а результат тот же :-(ручками перевожу в кусок программы для отправки тескта с паузой после настройки более 2 с)

    1: TON1(IN:=port_init , PT:=t#3s );
    IF NOT port_opened THEN
    com_handle:=SysComOpen(com_num);
    IF com_handle<>16#FFFFFFFF THEN
    port_init:=TRUE;
    ELSE
    SysComClose(com_num);
    com_handle:=SysComOpen(com_num);
    port_init:=TRUE;
    END_IF
    IF TON1.Q THEN
    com_set.Port:=com_num;
    com_set.dwBaudRate:=9600;
    com_set.byParity:=0;
    com_set.dwTimeout:=0;
    com_set.byStopBits:=0; (* *)
    com_set.dwBufferSize:=0;
    com_set.dwScan:=0;
    res:=SysComSetSettings(com_num,ADR(com_set));
    IF NOT res THEN
    port_opened:=TRUE;
    bCurentWork:=0;
    END_IF
    END_IF
    END_IF

    2) А LEN(snd_str) точно !=0? - это про длину строки не равную 0?
    я ручками пишу в переменную snd_str текст 2-10 символов латиницей.

  10. #50

    По умолчанию

    Попробуйте SysComSetSettingsEx

Страница 5 из 31 ПерваяПервая ... 3456715 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 18
    Последнее сообщение: 26.09.2014, 21:12
  2. Ответов: 0
    Последнее сообщение: 16.10.2012, 15:03
  3. Подключение устройств к ПЛК
    от инок в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 05.08.2012, 23:23
  4. Подключение устройств к SCADA
    от lirq в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 10.01.2011, 16:25
  5. ТРМ 101 (Подключение выходных устройств)
    от Михалыч в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 17.04.2008, 11:47

Ваши права

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