Просмотр полной версии : ПЛК110-30. Работа с портом RS-485 и библиотекой SysLibCom
Здравствуйте,
имеется ПЛК110-30, когда его приобретали, то думали что у него два независимых порта RS-485.
Для SysLibCom: RS_485_1 - 0, RS_485_2 - 2.
Первый порт открывается, настраивается и "отправляет".
Второй порт открывается, но не настраивается...
Все вышеизложенное в прикрепленном файле.
step 0 - заполнение структуры COMSETTINGSEX настройками для RS_485_1(COM0)
step 1 - открытие порта RS_485_1(COM0)
step 2 - настройка порта RS_485_1(COM0)
step 3 - запись в порт RS_485_1(COM0)
step 4 - заполнение структуры COMSETTINGSEX настройками для RS_485_2(COM2)
step 5 - открытие порта RS_485_2(COM2)
step 6 - настройка порта RS_485_2(COM2)
step 7 - запись в порт RS_485_1(COM2)
Знающие люди, пожалуйста, подскажите как использовать второй порт?
а по характеристикам на сайте указан только один RS-485
Сори, это я загнался, ПЛК110-30(http://www.owen.ru/catalog/74250271)
У меня уже пятая неделя пошла без выходных...
Не смог найти инфу по данному ПЛК. Причем данной инфы нет в руководстве.
Например в примерах на ПЛК100 указано, что 0-485, 1-232, 4-Дебуг 232
А вот как для ПЛК110-30 ?, может 1 это второй 485, а не 2
Где это указано ?
lara197a
06.08.2014, 17:01
ПЛК100,150,154
COM0 – RS485, COM1 – RS232, COM2 – Не исп., COM3 - Не исп., COM4 – RS232-Debug
ПЛК110
COM0 – RS485-1, COM1 – RS232, COM2 – RS485-2, COM3 - Не исп.,COM4 – RS232-Debug
ПЛК63
COM0 – RS485, COM1 – RS232, COM2 – Не исп., COM3 - Не исп., COM4 – RS232-Debug
Ну так, что я делаю не так. Вы мой пример не смотрели?...
Знающие люди, пожалуйста, ответьте что-нибудь. Я сейчас на объекте. Если второй порт завтра не запустится, то проброшу еще один кабель, и все будет на одном порту висеть. Я ентот ПЛК первый раз использую, и разбираться времени не было.
lara197a
06.08.2014, 19:59
Вот думаешь охота сидеть в чужом коде без пояснений копаться,
сидеть бибки вспоминать...
А чем конфигуратор не устроил.
Я не вижу в программе не стандартного протокола.
У меня работает стабильно, много лет, круглые сутки.
И десятках объектов.
1) Все пояснения в первом посте
2) я никого не заставляю копаться в моем коде, все на основе энтузиазма (это же форум)
3) мне нужен syslibcom
4) я просил откликнуться "знающих" людей, тех кто использовал порты RS-485 через syslibcom.
Енто не претензии, просто я не понимаю, когда человек заходит на ветку форума, что-бы оставить камент, что ему эта тема не интересна...
С наилучшими пожеланиями
lara197a
06.08.2014, 21:33
..................................
monteg попробуйте поработать только с портом 2, какие результаты ?
а так же перед работой с портом 2 закрыть порт 0 и соответственно закрывать порт 2 перед работой с портом 0
Спасибо за участие. Завтра с утра попробую через COM_SERVICE.
Имхо, забудьте про Овеновскую поделку ComService, она в некотором роде вредна.
Имхо, забудьте про Овеновскую поделку ComService, она в некотором роде вредна.
У меня выбора нет. Завтра с утра быстро попробую, если не пойдет, то брошу еще один кабель и буду использовать только первый порт.
monteg попробуйте поработать только с портом 2, какие результаты ?
а так же перед работой с портом 2 закрыть порт 0 и соответственно закрывать порт 2 перед работой с портом 0
Даже если первый порт не юзаю, второй не настраивается...
Тогда имхо плк в сервис. Comservice вам не поможет, это всего лишь надстройка и не более того. своеобразный улучшайзер от Овен, после того как они просрали правильность работы порта. Можете сравнить с документацией на SisLibCom и удивиться.
Не настраивается, даже если вы голую прошивку сделаете только с портом 2 ?
Про COM_SERVICE я в курсе. Но вдруг поможет...
Что вы имеете ввиду под голой прошивкой?
Если в моем примере переменной step присвоить начальное значение 4, то первый порт не будет использоваться воще.
А нафига ПЛК в сервис? Может енто косяк не конкретного изделия, а всего семейства.
Вернее не изделия, а документации.
И на одном порту все будет работать.
monteg, присвоить мало, проблемы на ПЛК Овен (возможно проблема даже глубже, в самом CodeSys) еще заключаются в том, что требуется иногда перезагрузка плк, особенно когда порт был некорректно закрыт например и завис.
Поэтому требуется чистый эксперимент. Загрузка ПЛК и работа только с одним портом 2
monteg, присвоить мало, проблемы на ПЛК Овен (возможно проблема даже глубже, в самом CodeSys) еще заключаются в том, что требуется иногда перезагрузка плк, особенно когда порт был некорректно закрыт например и завис.
Поэтому требуется чистый эксперимент. Загрузка ПЛК и работа только с одним портом 2
Попробую.
Спасибо за участие.
Сидят два чела на букву м и обсуждают какой овен нехороший бренд, сомсервис написан не овеном, никаких внутренних ошибок он не устраняет,а просто облегчает жизнь новичкам по настройке порта, то что там используется цикл так это как раз от новичков, которые могут не закрыв порт долбиться с его открытием постоянно
Включайте логику, Вы не первый кто приобрел 110 и следовательно раз не возникало вопросов на форуме раньше,значит несите его в сервис
capzap Вопрос, почему сделав 63/73 ПЛК неправильно (не по документации библиотеки SysLibCom), ОВЕН проложил данные грабли на все свои ПЛК, вместо того, чтобы только 63/73 вывести в исключение, а остальные сделать как положено ?
Вопрос, почему открытый порт зависает на втором цикле опроса прибора (переделывал библиотеки Меркурий 230 на работу через SysLibCom), хотя должен был опрашивать прибор в цикле без закрытия порта.
То, что порт виснет, определил опытным путем.
И интересно, кем же написан ComService, если по документации работы SysLibCom после корректного открытия порта мы должны получить TRUE а при ошибке False и только в ПЛК от ОВЕН мы получаем 0, а при ошибке -1 ????
Кто же тогда его написал для новичков ? :)
Может не стоит складывать в одну кучи и 6-ую линейку и 110-ую, там так скажем разные операционки и проблемы 63/73, стодесятого не волнуют
Кстати элементарная проверка работы обеих портов через конфигуратор тоже не проходит?
capzap ну у меня дома 100-ка, а видя код автора по открытию порта, 110-ка ушла недалеко и по работе с SysLibCom ОДИНАКОВО не соответствует документации на работу с бибкой SysLibCom.
Вроде кто-то из представителей ОВЕН тут на форуме признали, что однажды косякнув, переделывать не стали.
А это не есть хорошо.
+ сколько жалоб на отваливание портов при подключении CodeSys. Неужели за столько лет нельзя было модернизировать порты, чтобы они работали без запинки ?
Такое признание было про работу сокетов, а ни как не про работу портов, бибка по работе с смсками есть и под unm и под syslibcom, там же и примеры и вот однозначно кто то должен был по одному порту модули опрашивать,а по другому сообщения слать
Зы если у Вас на руках только сотка, че Вы вообще пытаетесь советы давать,если из опыта у Вас только впечатления с форума
lara197a
07.08.2014, 11:43
485 работают полностью стабильно.
capzap и в чем разница в данном случае между соткой и стодесяткой если обе не соответствуют документации по SysLibCom ? я не вижу разницы.
имхо, если учесть что порты независимы, как утверждают производители (где-то тут мелькало), то выше написал, нести в сервис, предварительно проверив через конфигуратор и работу через бибку только одного порта.
Возможно на 110 нет таких зависонов порта, как на 100. Вот только проверить особо не на чем. Покупать себе еще и 110-ку точно не буду.
lara197a
07.08.2014, 11:52
У ПЛК 110 совсем др. железо.
Порты 110 точно независимые.
Точно работают более 3-х лет без сбоев, выключения и перезагрузки круглые сутки.
Кстати на ПЛК 100 по 485 и 232 модем на GSD и второй модем на СМС работают уже лет 6.
Но правда проект делал только 1 раз.
[B]И интересно, кем же написан ComService, если по документации работы SysLibCom после корректного открытия порта мы должны получить TRUE а при ошибке False и только в ПЛК от ОВЕН мы получаем 0, а при ошибке -1 ????
Кто же тогда его написал для новичков ? :)
Предъявите, на какую документацию Вы ссылаетесь или опять перепутали с сокетами из syslibsocket
неплохо бы перед тем как утверждать что Вам не нравится, перепроверить еще раз на практике, причем не свои разработки, а проекты которые выложили реальные спецы в КДС
capzap да, на эту документацию, только попутал (каюсь) со следующим параметром SysComSetSettings, он мне true никогда не присылал.
А в ComService стоит это "Ready := NOT SysComSetSettings(Settings.Port, ADR(Settings));"
Да и в остальных примерах ОВЕНа.
А по документации ? "Возвращает TRUE при успешной установке параметров, иначе FALSE"
Ready := NOT SysComSetSettings(Settings.Port, ADR(Settings));
используется в перегрузке порта с новыми настройками и опять же ни коим образом не относится к открытию порта
После открытия порта требуется установить параметры порта, а не только перегрузить с новыми настройками, я не прав ? резонный вопрос - где TRUE ?
Вроде как сперва даем команду SysComOpen, получаем дискриптор порта, потом даем команду SysComSetSettings(Ex) и должны получить по документации TRUE.
Если бы не форум с примерами, куча бы народа выбраковывала ОВЕН, ну или плакалась бы и кололась.
И что вы молчите, что такой случай уже был, и именно на 110-30 ? http://www.owen.ru/forum/showthread.php?t=12202
И что вы молчите, что такой случай уже был, и именно на 110-30 а что у Вас есть сведения чем закончилось, может человек пошел и отдал в сервис, я ведь не возражаю против помощи специалистов
А по поводу первой части поста, Вы бы определились вы работаете напрямую с бибкой или через Comservice, в прокладке переменной Ready при успешном изменении параметров присваивается FALSE для того чтоб, как в приведенном Вами посте выполнить открытие порта
Без ComService. Однако это не меняет разность у овен и у документации. Другие примеры овен тоже содержат комбинацию именно NOT для определения правильности установки параметров порта.
Так а чего на Comservice тогда гнать
IF CS.ready=FALSE THEN
params.Port:=port;
params.dwBaudRate:=38400;
params.byParity:=0;
params.dwTimeout:=0;
params.byStopBits:=0;
params.dwBufferSize:=0;
params.dwScan:=0;
CS(Enable:=TRUE,Settings:=params,Task:=OPEN_TSK);
ELSE
CS.Enable:=FALSE;
handler:=params.Port;
SM1.RELEASE:=TRUE;
END_IF
вот комбинация, которую я использую,ни какие после SysComSetSettings я не запускаю, поэтому у меня не получалось обнаружить нестыковки, так что не стоит говорить что бибка вредна
Она вредна из-за ошибки овена, не дает понимания, что то, что она делает, не стыкуется с документацией.
Ясно дело, что вы не выполняете SysComSetSettings, потому что эту процедуру выполняет эта бибка, обходя ошибку...
Правда у меня еще не получилось при помощи ComService закрыть порт почему-то.
Не думаю, что новичек заглянет в нутро библиотеки, а не новичек не будет из-за этого проблему делать, добился работы и ладно, получил удовольствие от решения проблемы
а зачемп ускать ФБ из-за одной строчки SysComClose(Settings.Port); ?
Виноват, не правильно рассуждаю
Тестирование — неотъемлемая часть цикла разработки программного обеспечения. Начинающие команды девелоперов зачастую недооценивают его роль и проверяют работоспособность приложения по старинке — «работает, да и ладно». Рано или поздно эта стратегия дает сбой и баг-трекер начинает захлестывать бесчисленная армия тасков.
capzap я может быть не обратил бы внимания на это, если бы не необходимость написать так, чтобы опрос счетчика мог крутиться не только на ОВЕН, но и на ABB контроллерах.
Просто не знаю, что будет в конечном итоге. По проекту АВВ, а по факту решения так еще и не приняли. Может вообще будет сименс. Ну и для того, чтобы не изобретать велосипед, взял библиотеку Меркурий 230, написанную Овеновцами для UNM и стал переписывать под SysLibCom
Сейчас есть возможность погонять пару месяцев АВВ, дождусь только возвращения счетчика из путешествия...
ну напишите ComService for ABB только без NOT и будете знать что использовать в каком проекте, дескриптор то порта от этого не изменится, а бибки удаляются/добавляются кликом мышки
Кстати я сейчас сижу с "хваленым" сименсом по проблеме отсутствия связи по профибас, вот вроде дорого, настроики простые я связи с пневмоостровом как небыло так и нет. Так что не у одного овена проблемы
Ну, я просто разбирался как и что работает из-за того, что порт зависал. Может потом так и сделаю ComService для АВВ.
Проблемы есть у всех конечно, просто обидно когда они на ровном месте. Вот как у автора, или в той теме, вроде и есть 2-ой порт, а или не работает вовсе, или работает только через конфигуратор.
если предположить что выход функции SysComSetSettings часть результата преобразования INT_TO_BOOL(Settings.Port) и в конфигураторе порт работает, то логичен еще один вариант как оживить второй порт
Здравствуйте, уважаемый. Не важно на какую букву.
1) никто про фекалии здесь не писал
2) у овена, реально были косяки. Например, на офсайте писали,что к ПЛК100 можно подключать флэшку, для хранения архивов, описание работы функций syslibcom не совпадало с действительностью ( потом на форуме писали, что это из-за неправильного перевода, а потом им было влом переделывать документацию), один аккумулятор чего стоит...
Косяки есть, но они заложены в цене. Так же как отсутствие косяков заложено в цене у сименса, шнайдера, ЖЕ, якогава. Это нормально. Овен дюже подходит для очень бюджетных проектов.
Я сейчас на объекте, у меня запасного ПЛК нет. Мне проще обмен данными на один порт завести, чем отправлять в сервис... Завтра будут ТЭЦ запускать...
1)Второй порт через syslibcom я так и не смог настроить. Все сделал через первый, и все хорошо работает. Но если найдутся люди,у которых есть опыт работы c ПЛК110-30 через syslibcom со вторым портом RS485, то было здорово, если они поделятся опытом, ну или официальная тех. поддержка отзовется.
2) Хорош сраться, вопрос кто виноват не ставится, а интересует ответ на вопрос, что делать.
Через коныигуратор работает, через unm открывается, без not в comservice не открывается
Если через "чистый" syslibcom, то у меня порт открывается, но не настраивается. Если через COM_SERVICE, то Ready не получаю... Я не утверждаю, что у данного ПЛК второй порт 485 не работает. Я говорю, что у меня не получилось и просил помощи...
Ну так попробуйте эту функцию настройки с not и без неё, может там насамом деле фальш выдается только на нулевом порту. Вобще можно испольщуя unm и бибку по работе с смсками приспособить под модбас аскии
Хорошо, немного личной истории.
В годах 2010-2011 нашим проектантам очень понравилось в бюджетные проекты ставить "Овен" - ПЛК100 + МВА8 + МВ110... Все под modbus. Сделали порядка 15 проектов. Связь по modbus делал через конфигуратор. Через пол года, прмерно, на 30% установок появилась проблема - отваливается обмен данными(например с МВА8 или с амперметрами Sfere). Причем восстановление происходит, только при ПОЛНОМ выключении ПЛК, т.е. надо ждать пока разрядится аккумулятор. В результате чего у меня было несколько "дальних" командировок. После чего был найден выход - использовать modbus.lib. Проблема отпала полностью. Причем еще появилась возможность вести статистику обмена даными. И все стало хорошо.
Почему ПЛК110-30.
В мае этого года у ПЛК100-Р обнаружился следующий косяк - при включении при разряженном аккумуляторе была следующая картина - ПЛК вкючается и тут же выключается, и так продолжается в течении пары минут, после чего ПЛК встает и не запускает пользовательскую программу ( индикатор "Работа" не горит ). У меня на стенде стоит ПЛК100 2010 года выпуска, на нем этой проблемы нет.Начал изобретать. В результате получается, что происходит задержка при старте на разряженном аккумуляторе порядка 30 сек. Данная ситуация была признана неприемлемой и взяли ПЛК, у которого можно выставить в конфигураторе время работы от аккумулятора.
Я ентот ПЛК первый раз использую. Причем сложилась такая ситуация, что изучать данное изделие пришлось уже на объекте. А у меня все предыдущие проекты заточены на modbus.lib, а следовательно syslibcom. Изобретать что-то новое в условиях дефицита времени( нужно все "слабать" за пару дней ) было крайне не целесообразно.
Да я понимаю, что здесь МНОГО личного, но вопроса - почему второй RS485 не настраивается через syslibcom енто не снимает
Не понятно чем занимаются специалисты фирмы "Овен".
monteg кстати да, попробуйте сделать второй ComService для второго 485-ого порта без NOT, очень интересен результат.
отвечу, когда будет под рукой ПЛК110-30.
Я с объекта свалил.
monteg я так понимаю. можно проверить ничего не подключая, просто открыть порт и дать ему настройки ?
Если так, то попробую попросить в одной фирме на прокат, елси есть по наличию и попробовать.
(Выяснил, по наличию нет, специально заказывать не будут)
Попробовать можно. Интересен Ваш результат.
У нашей конторе сейчас данного плк в наличии нет.
Значение переменной не мог перепутать( Byte с DWORD) в переменной SERIAL_PORT2_ID?
Вы имеете ввиду тип переменной или значение или что?
А вообще было несколько ( 3 или 4 ) таких ПЛК. Ни на одном второй RS-485 из SysComLib не заработал.
Не знаю почему ОВЕН молчит. есть прошивка для старого 110-30 которая решает проблему работы второго 485го на syslibcom.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot