PDA

Просмотр полной версии : ПЛК110-30 и RS485-2. Порт не открывается.



Bagaj
01.03.2012, 15:10
Пытаюсь организовать обмен данными с применением ПЛК110-30 и двумя сетями RS-485.
Столкнулся вот с такой проблемой. RS-485-1 открывается без проблем, а вот RS485-2 остается постоянно закрытым и не открывается.
Вот пример кода:

com_number1 := 0; (*COM0 RS485-1*)
com_number2 := 2; (*COM2 RS485-2*)
IF COM_SERVICE1.ready=FALSE THEN
com_settings1.Port := com_number1;
com_settings1.dwBaudRate := 9600;
com_settings1.byParity := 0;
com_settings1.dwTimeout := 0;
com_settings1.byStopBits := 0;
com_settings1.dwBufferSize := 0;
com_settings1.dwScan := 0;

COM_SERVICE1(Enable := TRUE, Settings := com_settings1, Task := OPEN_TSK);
com_ready1 := FALSE;
ELSE
COM_SERVICE1.Enable := FALSE;
com_ready1 := TRUE;
END_IF;

IF (com_ready1 = TRUE)
THEN
(*Порт открывается, проблем нет*)
END_IF;

IF COM_SERVICE2.ready = FALSE
THEN
com_settings2.Port := com_number2;
com_settings2.dwBaudRate := 9600;
com_settings2.byParity := 0;
com_settings2.dwTimeout := 0;
com_settings2.byStopBits := 0;
com_settings2.dwBufferSize := 0;
com_settings2.dwScan := 0;

COM_SERVICE2(Enable := TRUE, Settings := com_settings2, Task := OPEN_TSK);
com_ready2 := FALSE;
ELSE
COM_SERVICE2.Enable := FALSE;
com_ready2 := TRUE;
END_IF;

IF (com_ready2 = TRUE)
THEN
(* А вот сюда никак не попадает, COM_SERVICE2.ready = FALSE -ВСЕГДА*)
END_IF

Если же пытаться открыть только какой то один порт, то все равно открывается только 1-й порт, а второй - ну никак. Таргет 2.10, прошивка ПЛК 2.14.
Может кто сталкивался с такой проблемой или хотя бы подскажет в каком направлении копать. Может проблему можно решить используя напрямую SysLibCom.lib? Только я не знаю как. Если кто может подскажите кусочком кода.

p.s. Просьба, решение с конфигуратором не предлагать.

Bagaj
03.03.2012, 14:56
Причем, что интересно: если пытаться открыть порт RS485-1 и RS232,
com_number1 := 0; (*COM0 RS485-1*)
com_number2 := 1; (*COM2 RS232*)
то оба порта открываются без проблем и идет обмен данными по обоим портам без проблем, а вот при попытке открыть RS485-2, порт не открывается (COM_SERVICE2.ready = FALSE - всегда). Стоит так же упомянуть, что RS485-2 через конфигуратор работает.
Какова вероятность того что ошибка в микропрошивке контроллера?
Как может прокомментировать это тех-поддержка? (Если она конечно это читает)

capzap
03.03.2012, 15:22
p.s. Просьба, решение с конфигуратором не предлагать.

Странный подход, а протестировать работает ли порт через конфигуратор нельзя? Или Вам сразу надо готовый проект загрузить

Bagaj
03.03.2012, 15:29
Стоит так же упомянуть, что RS485-2 через конфигуратор работает.


Проверял я его и так и эдак... Через конфигуратор работает, а так не хочет. А 15-го марта надо объект ехать сдавать. Контроллер этот покупался именно из-за 2-х 485 портов....

capzap
03.03.2012, 15:35
если через конфиг работает, попробуйте создать пустой проект и добавить только блок работы с вторым 485, в таком варианте работает?

Bagaj
03.03.2012, 15:49
Создал пустой проект с одним 485-2 портом. (com_number := 2;) Не активен.
Если же поменять:
com_number := 0; (485-1)
com_number := 1; (232)
то работает. Если же опять меняем на 485-2, опять не работает.

capzap
03.03.2012, 15:54
в режиме онлайн com_number всегда остается равным тому номеру который задаете?

Bagaj
03.03.2012, 16:04
Да, это тоже проверил. Так же проверил что работает при com_number = 4( 232 DEBUG). Поведение com_number = 2 аналогично поведению com_number = 3 то есть несуществующего порта.

capzap
03.03.2012, 16:11
и при отстегнутых проводах тоже самое, :) ну мало ли

а как себя в конфигураторе ведет, передавалась ли какая нибудь информация

Bagaj
03.03.2012, 16:26
Проверял так же при отстегнутых проводах; отправлял байты принудительно после нескольких тысяч инициализаций в цикле, проверял выход осцилографом - результат ноль.
Через конфигуратор работает без проблем. Опрашивает несколько устройств и передает данные. Проблема в том что на линии будет более 50 устройств и конфигуратором это все реализовать довольно громоздко.
При настройке через конфигуратор порт 485-2 по умолчанию InterfaceType = RS232, и это вызывает сомнения (485-1 InterfaceType = RS485) вот и думаю, может его как то по другому инициализировать надо?

capzap
03.03.2012, 17:02
http://www.owen.ru/forum/showthread.php?t=10263 вроде со слов техподдержки все правильно делаете

capzap
03.03.2012, 17:07
Проблема в том что на линии будет более 50 устройств и конфигуратором это все реализовать довольно громоздко.

с этими вопросами уже разобрались?

Bagaj
03.03.2012, 20:25
Да в том то и дело что не хочется лепить конфигурацию на эти самые 50 устройств, тем более что контроллеров 5 и на каждом своя, не повторяющаяся конфигурация. А кодом вопрос решается намного изящней и проще. Плюс переносимость. Если не заработает, придется вместо 485-2 использовать 232 через преобразователь. Правда не знаю на сколько корректно оно будет работать. В понедельник попробую. А по этому вопросу наверное буду к разработчикам пытаться достучатся, авось чего путного посоветуют или у себя чего подправят.

capzap
03.03.2012, 21:03
попробуйте еще вернутся к какой нибудь ранней прошивке, еще бывает если прошивка меняется после создания проекта, то в КДС необходимо по новой устанавливать таргет. Может как то связано с распределением памяти на переферию

Bagaj
03.03.2012, 21:37
Прошивка изначально была 2.14. На всякий случай перепрошивал ее еще раз этой же прошивкой (ибо считается последней). Результат такой же. Но все равно, спасибо за совет. Попробую поискать более раннюю.

capzap
03.03.2012, 22:09
даже если прошивали на туже, всё равно наверное стоит переустановить таргет и соответственно проект, чтоб уж точно наверняка все было по новой

Bagaj
05.03.2012, 13:11
Переустановил таргеты, создал абсолютно пустой проект с нуля. Пытаюсь открыть 485-2 - не открывается. Меняю на 485-1, 232, 232-Debug, открываются без проблем, меняю назад на 485-2, опять не открывается....

capzap
05.03.2012, 14:44
:) у меня уже нет вариантов кроме извращений
Попробуйте установить соединение используя библиотеку UNM, и разработать свой модбас из 3 и 16 функций чтоб побыстрому

lazy
02.10.2012, 09:21
Так чем все кончилось, как открыли порт? У меня те же проблемы. )

RV9WFJ
03.12.2014, 10:36
Вот и я на те же грабли наступил. Кто-нибудь нашел решение кроме использовать UNM?

Отвечаю сам себе: читай тут http://www.owen.ru/forum/showthread.php?t=14536&page=6&p=120358&viewfull=1#post120358

приборист
03.12.2014, 15:23
Вот и я на те же грабли наступил. Кто-нибудь нашел решение кроме использовать UNM?

Отвечаю сам себе: читай тут http://www.owen.ru/forum/showthread.php?t=14536&page=6&p=120358&viewfull=1#post120358

У меня на 110-60 через конфигуратор RS485-2 заработал сам. Я тему по ссылке читал, был готов перепрошивать.
Завтра буду на объекте ради интереса гляну прошивку, неужели с завода идет уже на прошивке 2.15.3

Гарчев Евгений
04.12.2014, 17:52
С завода все еще идет 2.14.0. Но при работе RS485-2 что на ПЛК110-30, что на ПЛК110-60 через конфигурацию проблем не было, с ПЛК110-60 проблем при работе с RS485-2 не было и через библиотеки, а вот на ПЛК110-30 с прошивкой 2.14.0 RS485-2 не работает через библиотеки (SysLibCom).