Вход

Просмотр полной версии : ПЛК150 УМ и СП270



Ахматов
08.08.2009, 16:59
В проекте кроме ПЛК150УМ, и СП270, МВУ8, Марк902, и Взлет.

Проект первый, прошу не пинать сильно.

1) Может быть в сети 485 ПЛК мастер по отношению к остальным приборам и панель мастер по отношению к ПЛК?
(при наличии в сети только ПЛК и панели работает, при подключении любого прибора - Потеря связи)
2) Взял примеры с форума и попробовал подключить панель как мастер по 232. При добавлении в конфигурацию Modbas Slave и RS232 Debug - сразу при загрузке программы ошибка - Ошибка инициализации устройства ID 200 (RS232 Debug) ( и после в тексте ошибки абракадабра)
Попробовал перепрошить ПЛК не помогло. Это неисправность контроллера?
3) Остается последний вариант Панель Slave. Читаю, пытаюсь и никак не врубаюсь, что делаю не так. ПЛК не видит панель.
Где нибудь есть более-менее прозрачный пример на эту тему?

Николаев Андрей
08.08.2009, 17:05
1. В одной сети может быть только один мастер.
2. По 232 панель рекомендую мастером. Почему ошибка - надо разбираться. Присылайте проект, с указанием типа контроллера и ПринтСкрин ошибки.
3. Вы переставили Target после перепрошивки?

Ахматов
08.08.2009, 17:22
1) Жаль, что это нигде явно не прописано и конфигуратор позволяет делать заведомо неработающую конфигурацию. (Не все же рождаются сразу умными? ;))
2)Я вчера смог запустить проект при минимальном количестве (одном :) ) параметров, программа перестала работать просто при переименовании параметров.
Сейчас буду восстанавливать аварийную ситуацию.
3) Вы не рекомендуете подключать панель как Slave?

Ахматов
08.08.2009, 17:43
Вот сообщение. По сути просто дал имена битам, и более ничего не менял, файл twp не менял и не перезагружал.

Естественно Потеря связи.


Убрал имена переменных - заработало.

Господа, какие ограничения на имена переменных в регистрах 232 Debug?

Ахматов
08.08.2009, 18:44
Версия которая стабильно выдает у меня ошибку инициализации ID 200

Ахматов
09.08.2009, 13:33
Все плоследующие эксперименты показывают, что любое добавление RS Debug 232[var] в любой последовательности и даже без SubElenent приводит к вышеназванной ошибке.
Можно добиться загрузки программы выключением, ресетом и прочими ужимками, но только в самой простейшей конфигурации и на 1-2 раза.
Таки контроллер?

Господа, киньте ссылку на Панель СП270 слейв...Не видит контроллер панель, хоть тресни.

и еще вопрос. Все устройства на скорости 115200, а "Марк902" нужно пинговать на скорости 19200 (только) - это возможно?

Николаев Андрей
09.08.2009, 13:47
Похоже, что контроллер, точный ответ смогу завтра дать - надо с программистами поговорить... Со Slave может такая же ботва получится...
Обмен по одному протоколу настраивается на одной скорости, либо Вам надо самим организовать обмен по ModBus, например используя библиотеку и меняя настройки работы порта.

Ахматов
09.08.2009, 14:01
Катастрофа.
Еле уговорили заказчика на Овен. :mad: Похоже придется оставить комплект приборов себе на память.
Марк902 не поддерживает ModBus, скорее их протокол похож на ICMP.
Могу я связать ModBus устройства на скорости 115200 и отдельно работать с Марком по 485 на 19200 ? Он не прописывается в конфигурацию, а будет опрашиваться через SysSockSendTo()

По 232 с Марком -не связаться по изложенной выше причине.

Николаев Андрей
09.08.2009, 18:16
Давайте не пугать окружающих смайлами:
1. Это Ваш первый проект. Если Вы знаете, что у Вас куча разнородного оборудования без стандартных протоколов - нужно запастись портами обмена. Ну и четко понимать, что если Вы закладываете оборудование с нестандартными протоколами - проблемы с организацией связи будут - к бабушке не ходи. Не зависимо Сименс это или ОВЕН. Я бы в Вашей ситуации взял ПЛК100 +МВА8 - был бы лишний последовательный порт...
2. Посмотрел Ваш Марк. И чо Вы хотели? Скорость здесь - самая маленькая проблема. Протокол действительно нестандартный. По этому у Вас в любом случае не получилось бы организовать обмен "просто". В CoDeSys есть возможность работать напрямую с портом 485 (библиотека SysLibCom, описание и библиотека на диске). Не все контроллеры такие функции позволяют. Вам необходимо программно описывать протокол обмена с Марком (ну или можете добиться от производителя стандартизации обмена - хотя быстрее будет самим сделать). Дальше берете библиотеку ModBus.lib и в проекте делаете следующее: основной блок настройки порта, и добавляете блоки обмена с МВУ (из библиотеки) и свой блок обмена с Марком. При окончании обмена по ModBus перенастраиваете порт на настройки обмена с Марком. По окончанию обмена с Марком перестраиваете порт и снова переходите на работу с МВУ8. И так постоянно. Все это реализуемо, причем сугубо программным путем в CoDeSys.
3. Как подключается ВЗЛЕТ???
4. Вопрос по Debug - совершенно отдельный. Еще раз - после смены прошивки Вы меняли Target? Делали команду из меню дополнительно\стандартная конфигурация???

Ахматов
09.08.2009, 20:13
1) :) Разберемся, согласен.

2) С Марком я уже пошел по предложенному Вами пути. Тем более производитель прислал некоторые рекомендации.
Handle := SysComOpen( port ); (* Open COM port *)
SysComSetSettings(dwHandle:=handle, ComSettings:=ADR(setting)); (* Setting up communication *)
SysComWrite(handle, ADR(message), 7, 500); (* Send message (7bytes)*)
и res := SysComRead(handle, ADR(message),7, 500)
Остались некоторые вопросы по формированию CRC и преобразованию результата запроса в real, ну и соответственно перенастройки порта;
А эти запросы должны влиять на работу Modbus?
В настоящий момент у меня ПЛКопрашивает МВА8 по ModBus _ и успешно, датчик температуры фурычит и его данные видны в контролерре, и при этом программа постоянно шлет SysComWrite - естественно безуспешно, отвечать некому, Марк тоже привезут завтра.
Может я ошибся с адресом Com?
Port = com1;

Если все заработает обязательно выложу в соответствующую ветку.

3. Взлет согласно инструкции поддерживает ModBus, во всяком случае - по документам, сам прибор привезут завтра. Пока тренировался с ModBus Master на МВА8. Все работает.

4. Target конечно менял.
"Делали команду из меню дополнительно\стандартная конфигурация??? "
При перепрошивке?
5. Попробовал просто подключить модуль DCON, При загрузке программы сразу ошибка инциализации ID 201 - соответственно ID модуля DCON.

Ахматов
09.08.2009, 20:26
Но больше волнует подключение панели. Для Марка есть резервный вариант: отсечки по min и max Ph и поставить дополнительный датчик температуры, у Взлета есть импульсный выход по объему, так что задача решаемая и более деревянным способом. Но проект пилотный, хочется сделать хорошо.

С СП270 никаких вариантов замены нет.
А подключение панели как слейв это таки тайна? Пример, хотя бы с одним параметром - *.pro и *.twp////

Ахматов
10.08.2009, 09:23
Делали команду из меню дополнительно\стандартная конфигурация???

Нашел эту опцию в CodeSys. После опции - проект грузится, после добавления debug232 или DCON _ сразу ошибки ID 200 или ID 201.


По какому порту обращаться в ПЛК150 по 485 232?

Александр Приходько
10.08.2009, 16:54
Здравствуйте, Ахматов.
Та ошибка о которой вы говорите - это не совсем ошибка. Дело в том, что порт Rs-232 может использоваться в нескольких режимах. Когда вы к этому порту подключены с компьютера и грузите программу, то порт инициализирован на работу с CoDeSys. Соответственно после загрузки программы контроллер пытает переинициализировать порт на работу с вашими устройствами, но он занят кодесисом, поэтому вы видите данную ошибку. Как обойти? есть два решения, быстрое и неудобное.
1) Быстрое - если есть сетевая карта (желательно незанятая интернетом) то можно настроить загрузку проектов через порт ethernet.
соответственно необходимо один раз настроить сетевую карту, контроллер и кодесис.
2) Неудобное - загружаете проект, игнорируете ошибку, делаете ЗАГРУЗОЧНЫЙ ПРОЕКТ(обязательно)! отключаете контроллер от компьютера, подключаете панель, жмете на контроллере сброс и вуаля! Но в данном случае контроллер вам недоступен, что как правило очень критично при наладке и отладке программы.

Ахматов
10.08.2009, 17:01
Я не подключен к ПЛК через 232.

к ПЛК я подключаюсь через сетевую карту не занятую интренетом через ethernet.
К 232 у меня подключен только СП270.

Ахматов
11.08.2009, 08:26
При окончании обмена по ModBus перенастраиваете порт на настройки обмена с Марком. По окончанию обмена с Марком перестраиваете порт и снова переходите на работу с МВУ8. И так постоянно.
При корректной настройке СОМ порта 485 обращение к Марку через SysComWrite сразу выбивает ModBus. В короткие сроки реализовать , то что Вы описали нереально, пробую подключать через 232.

Господа, так мой контроллер мертв по debug или у меня руки не оттуда растут?:)

Александр Приходько
11.08.2009, 10:06
Я не подключен к ПЛК через 232.

к ПЛК я подключаюсь через сетевую карту не занятую интренетом через ethernet.
К 232 у меня подключен только СП270.

Вероятнее всего ваша проблема заключается в следующем:
1) Если вы используете стандартный кабель от контроллера (для заливки программы) то эта ошибка должна быть! Так как распайка кабеля для подключения устройств и распайка кабеля для загрузки программы различны! Если у вас нет кабеля ПЛК-ПАНЕЛЬ, то отключаете питание с контроллера, снимаете крышку контроллера и на верхней плате установите джампер (перемычку). После этого ошибка должна пропасть.

2) Если у вас есть кабель плк-панель проверяйте распайку кабеля и отсутствие перемычки. Распайку кабеля смотрите во вложении (КС1 и КС2).
1490

Ахматов
11.08.2009, 13:05
Я подключался через стандартный кабель один раз при задании сетевого адреса ПЛК.

Но панель подключал через кабель комплекта ПЛК. Хотя ошибка возникает при загрузке программмы, не зависимо от наличия кабеля в розетке ПЛК.

Хотя пробую переставить перемычку.

Ахматов
11.08.2009, 14:22
После установки перемычки программа загружается и работает. По крайней мере - пока.
Спасибо.
Но хотелось бы оставить 232 для МАРКа, буду еще мучить СП270 как слейв по 485.

Николаев Андрей
11.08.2009, 15:34
Мдя.
А нужно было просто использовать необходимый кабель - КС2.
КС1 и установка на верхней плате перемычки - это черный ход, причем не совсем хороший... Так как вспомнить о перемычке через пару месяцев Вы не вспомните, а порт для программирования уже не будет использовать...

Ахматов
11.08.2009, 16:37
Я извиняюсь за некорректное использование кабелей, увы конфигурацию и приборы заказывал не я. Разбираюсь в чужой каше. Кабель приедет через неделю, а мне в понедельник приступать к тестовым испытаниям.

Теперь с перемычкой я могу обращаться по 232 к любому устройству или только к панели?

(Система работает устойчиво и при добавлении переменных и ротоколов (Owen)) Но нужен 232 для связи с МАРКом.
Допустимо ли использовать и Owen и Modbus одновременно?

Извиняюсь за массу тупых вопросов :)

Николаев Андрей
12.08.2009, 09:18
Теперь 232 работает с любым устройством, но перепрошить контроллер нельзя, так же как и связаться с контроллером из ПЛК.
одновременно по одному интерфейсу может работать только один протокол с одним мастером. Во всех других случаях (совмещение протоколов) необходимо принимать дополнительные меры, чтобы данные не терялись.
Например самостоятельно организовывать доступ к порту обмена.
Например управлять работой ModBus или ОВЕН в конфигурации ПЛК (включая обмен по ним или выключая) - смотрите PLC Configuration
Либо самому программно организовывать доступ к порту.

Ахматов
12.08.2009, 13:22
Понятно.

За неделю работы с СП270 сгорает второй преобразователь USB-com. Разных производителей и на разных компах.

Это нормально или я такой везучий?

Николаев Андрей
12.08.2009, 16:14
Хм...
Скорее везучий, у меня уже года два преобразователь "no name" и контроллеры и панели и все что угодно... Тьфу тьфу тьфу...
Но на всякий случай посмотрим - спасибо.

Ахматов
12.08.2009, 23:31
По 232 - панель мастер работает без вопросов, разные типы данных и преобразования, как в форумских примерах. Панель мастер 485 - тоже работает, если нет других устройств.
По 485 - панель слейв не могу увидеть ни одной переменной и ни одного регистра. Там же десяток параметров не более, в чем траблы...

Завтра пробую подключить панель слейв по 232.

1) Правда ли, что если панель слейв, то гораздо проще и надежнее сохраняются установочные переменные программы? (retail, если не ошибаюсь)

2) Не понял ответа - После установки перемычки на ПЛК я могу подключаться через разъем DEBUG кабелем из комплекта ПЛК к другим устройствам (распайка на СП270 и устройстве совпадает)


И еще такое чудо -
port: PORTS:=Com4;
setting: COMSETTINGS := (Port:=Com4,
dwBaudRate:=19200,
byStopBits:=0,
byParity:=0,
dwTimeout:=500,
dwBufferSize:=0,
dwScan:=0);

После заливки в ПЛК вижу
port: PORTS:=Com1;
setting: COMSETTINGS := (Port:=Com1,
dwBaudRate:=19200,
byStopBits:=0,
byParity:=0,
dwTimeout:=500,
dwBufferSize:=0,
dwScan:=0);

Что бы это значило? И какой COM в данном случае (перемычки и кабеля) ставить корректней.

Николаев Андрей
13.08.2009, 09:44
1. Кабель для программирования переводит порт DBGU в режим программирования (протокол Gateway). Соответственно другие протоколы не могут через данный порт работать. Перемычка на верхней плате (сделана в сервисных целях) делает так, что использование данного кабеля не занимает порт по Gateway, а оставляет открытым для любого обмена. Вот и все.
Номера COM портов указаны в описании SysLibCom.
2. По поводу программы- присылайте проект - посмотрим.