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

Тема: SysLibCom

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Уважаемые специалисты ОВЕН, жду вашией помощи!!!

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

    По умолчанию

    GPRS.
    Настройка и установка GPRS соединения:
    AT+SAPBR=3,1,«CONTYPE»,«GPRS»
    AT+SAPBR=3,1,«APN»,«internet.beeline.ru»
    AT+SAPBR=3,1,«USER»,«beeline»
    AT+SAPBR=3,1,«PWD»,«beeline»
    AT+SAPBR=1,1 — установка GPRS связи
    AT+SAPBR=2,1 — полученный IP адрес
    +SAPBR: 1,1,«10.229.9.115»
    AT+SAPBR=4,1 — текущие настройки соединения
    AT+SAPBR=0,1 — разорвать GPRS соединение
    если речь о ПМ, незнаю назначение блока modem, я открыва порт и АТ-командами устанавливаю соединение, как вышеизложенный код, единственно у меня ПМ с чипсетом SIM900

  3. #3

    По умолчанию

    Спасибо конечно, но с установкой соединения с помощью SysLibCom всё получилось. Проблема в отсылки значений в формате modbus, с помощью MB_WR_REGS. Нужно оценивать ответ slave устройства о том, что переменная получена... Может нужен какойто отдельный блок, кот анализирует в ответе контрольную сумму? Хотя судя по тому, что у него есть таймаут, то врятли....
    Последний раз редактировалось Антон12345; 24.05.2012 в 13:01.

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

    По умолчанию

    Цитата Сообщение от Антон12345 Посмотреть сообщение
    Спасибо конечно, но с установкой соединения с помощью SysLibCom всё получилось. Проблема в отсылки значений в формате modbus, с помощью MB_WR_REGS. Нужно оценивать ответ slave устройства о том, что переменная получена... Может нужен какойто отдельный блок, кот анализирует в ответе контрольную сумму? Хотя судя по тому, что у него есть таймаут, то врятли....
    Если Вы остановились только на этой функции, а не о протоколе в целом, то я никогда не контролирую ответ на команду записи регистров, ценной для меня информации в ней нет

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Если Вы остановились только на этой функции, а не о протоколе в целом, то я никогда не контролирую ответ на команду записи регистров, ценной для меня информации в ней нет
    Т.е. вам не важно дошла ли информация до устроийства и записалась ли или нет?

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

    По умолчанию

    Цитата Сообщение от Антон12345 Посмотреть сообщение
    Т.е. вам не важно дошла ли информация до устроийства и записалась ли или нет?
    Важно, но с техникой так не бывает, что чтение идет нормально, а запрос с записью не доходит. Тут либо ни чего не идет, либо все доходит. Кроме того, если привыкать к забугорным технологиям, то на каждое устройство ставиться обратная связь. И уж если она показывает, что требуемое устройство не включилось, я начинаю "волноваться"

  7. #7

    По умолчанию

    Task = OPEN_TSK, Task = CLOSE_TSK вроде алгоритм понятен. Вопрос по этой части
    IF Task = RESET_TSK THEN
    Ready := NOT SysComSetSettings(Settings.Port, ADR(Settings));
    END_IF
    Почему ОК возвращается инверсией? Ведь в описании четко написано SysComSetSettings возвращает true при успехе, в противном случае false. Или эту часть алгоритма я недопонимаю или все наоборот?

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

    По умолчанию

    SysComSetSettings возвращает 0, если Ok

  9. #9

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    SysComSetSettings возвращает 0, если Ok
    Если так, то тогда все становится на свои места. Правда вроде логика немного нарушена.

  10. #10

    По умолчанию

    требуется помощь в изобретении велосипеда. В общем нужна поддержка SysComSetSettings Ex(антимат озабоченый слитно не дал написать) чего в com_service.lib не предусмотрено. Стал писать свой ФБ открытия закрытия порта.

    FUNCTION_BLOCK COM_SERVICEEX
    VAR_INPUT
    Enable:BOOL;
    Settings:COMSETTINGSEX;
    TASK:BYTE;
    END_VAR
    VAR_OUTPUT
    Ready:BOOL;
    END_VAR
    VAR
    P_discr: DWORD;
    CLOSE_OK:BOOL;
    END_VAR
    _________________________________________

    IF Enable THEN
    IF TASK=0 THEN SysComClose(Settings.Port); P_discr:=SysComOpen(Settings.Port);
    IF P_discr<>16#FFFFFFFF THEN
    Settings.Size:=SIZEOF(Settings);
    Ready:=NOT SysComSetSettingsEx(Settings.Port, ADR(Settings));
    ELSE TASK:=2;
    END_IF
    ELSIF TASK=2 THEN CLOSE_OK:=SysComClose(Settings.Port); Ready:=FALSE;
    END_IF
    END_IF

    в итоге при открытии порта не прокатывает задание настроек для SysComSetSettingsEx. Вываливается инвалид 16#FE. Глядел в различных темах как писали другие люди - я делаю вроде все так же. Может кто подскажет в чем я не прав. COM_SERVICE.lib работает исправно, а у меня не работает, причем на любом порту. Открывается порт нормально, загвоздка именно в настройках.
    Последний раз редактировалось S.A.D.; 08.10.2013 в 12:10.
    Чтобы понять рекурсию нужно понять рекурсию

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

Похожие темы

  1. SysLibCom
    от JoSaint в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 09.11.2010, 14:13
  2. Syslibcom
    от Назаров Александр в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 28.04.2010, 16:34
  3. SysLibCom
    от demon в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 20.03.2009, 13:08
  4. ПЛК 150 и SysLibCom.lib.
    от Анатолий в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 13.12.2008, 13:48
  5. SysLibCom.lib
    от Nekit в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 05.05.2007, 10:14

Ваши права

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