PDA

Просмотр полной версии : Codesys -> ПЛК100



Andriy6
08.04.2011, 01:14
Всем привет. Помогите разобраться с Codesys.
Я в нем совсем новичек, но решил попробовать поработать, когда знакомый студент обратился ко мне за помощью в создании проекта Trace Mode + ПЛК100 для тестирования процессов ОМД - из этого я знаком с ТМ :o
Неделю боролся с задачей. Смотрел видео, примеры.. Но у меня под рукой ПЛК нету и проверка программы делается только в универе и без меня.
Сегодня знакомый проверял все с преподавателем. У них не получилось записать программу в ПЛК. "Подключение невозможно.. код ошибки 0" - как-то так. Преподаватель сказал, что это потому, что в PLC Configuration поставлено Modbus slave - и это относится к самому Codesys - тоесть, это делает среду разработки слейвом, а она должна быть мастером и управлять передачей :eek: Звучит не убедительно..

Может проблема в банальном - в настройках связи ? Online - Communnication Parameters. например, скорость связи не соответствует настройкам системы.

На всякий случай выкладываю проект ТМ 6.07 base и Codesys 2.3

capzap
08.04.2011, 07:44
Попытайтесь описать пошагово, как Вы создавали проект, к примеру у меня вообще не получилось запустить чисто Ваш проект в КДС, конфиг ПЛК отсутствует

capzap
08.04.2011, 08:01
Попробуйте вместо глобальных переменных имена присвоить в своем конфигураторе, как показано на рисунке. На эмуляторе у Вас дома Ваша программа работает?

Andriy6
08.04.2011, 12:20
1) создал новый проект с таргетом PLC100.R-L .
2) добавил POU. Написал программу.
3) в PLC Configuration добавил Modbus slave, протокол 485 в Modbus FIX и переменные для передачи по сети.
4) добавил глобальные переменные.
5) в меню Online - Communication Parameters добавил Serial (RS232), но скорость оставил по умолчанию 38400 (студент говорит, что они меняли скорость на 115200 - не помогло).

Все. Только в пункте 3 я сначала сделал TCP в MB FIX, но они передумали, сказали, что по TCP не могут подключить и надо 232/485. Я поменял на 485 и еще создал копию проекта уже с 232 - на всякий случай не сколько вариантов. Сейчас остановились на 232.

У меня и у него на домашнем ПК в эмуляторе все работает. А еще у преподавателя в PLC Configuration несколько строк красные :confused:

capzap
08.04.2011, 12:38
1) таргеты в универе такиеже? З) протокол модбаса настроен, по параметрам совпадает с ТМ? 4) от глобальных избавтесь, сделайте как на рисунке

Andriy6
08.04.2011, 12:55
В универе таргеты такие же.
Протокол модбаса настроен как и в ТМ - но до ТМ еще не дошло дело.
От глобальных избавился.

Спасибо за ответы.

capzap
08.04.2011, 13:02
каким кабелем пользуются, чтоб программу записать и какой порт используют для этого

capzap
08.04.2011, 14:52
Еще хотелось бы услышать, читали ли Вы РЭ_ПЛК100.pdf п.8.2 на стр.20, п.10.2.5 на стр 26 и стр.38-39

Andriy6
08.04.2011, 15:20
Уже обратил внимание на те пункты РЭ. Сообщил знакомому, он наверное уже завтра будет разбираться в универе.
Большое спасибо, capzap!

А вы пробовали открыть мой проект? Получилось?

capzap
08.04.2011, 15:26
:) с телефона не получается, будет под рукой КДС попробую еще раз

capzap
08.04.2011, 15:33
Первый программный компонент (POU – Program Organization Unit) помещается в новый проект авто-
матически и получает название PLC_PRG. Именно с него и начинается выполнение процесса (по анало-
гии с функцией main в языке С), из него будут вызываться другие программные блоки (программы,
функции и функциональные блоки).

1. Однозначно в Вашем проекте надо менять название программы на PLC_PRG

Виноват, первый пункт отменяется :), просто непривычно когда человек говорит что только начал изучать КДС, а уже перешел от стандартного использования к Таскам

capzap
08.04.2011, 15:39
неплохо если сами проверите прогу на наличие ошибок с помощью Проект -> Контроль -> все пункты

и мне кажется лучше будет, если Вы выложите не файл с расширением .pro, а Проект-> Экспорт... файл .exp

capzap
08.04.2011, 16:00
проект у меня открывается без модбаса, но судя по глобальным переменным из первоначального проекта, Вам нужно будет перечитать еще раз как должны расплогаться регистры модбаса в ПЛК, смысл в том что если есть 8 бит, необходимо создать еще такой же элемент из 8бит, даже если на переменные достаточно одного элемента, и только после этого создавать переменные типа WORD, REAL вставляется если перед ним находятся число байт кратное четырем, это либо четыре 8бит-ных элемента или 2 WORD-а, количество таких комбинаций может быть любым

Andriy6
08.04.2011, 16:01
Мне надо, чтобы программа исполнялась каждые 1мс, по этому надо было разобраться с Тасками. На форуме нашел подходящий пример.

Проверку сделал по всем 4м пунктам в Project -> Check. Все норм.

capzap
08.04.2011, 16:37
Вот теперь нормально открылось

2.3.1 Модуль специального дискретного входа (Button) – программный модуль, предназначенный для переключения режима функционирования кнопки "Старт/Стоп" на верхней панели ПЛК

:) у Вас сколько кнопок в программе и сколько их на ПЛК

так как переменных относительно мало в модбасе, создайте все по новой, сперва заведите все REAL-ы, потом WORD-ы и далее 8бит-ные

Andriy6
08.04.2011, 16:56
Речь идет об двух переменных типа Button в Modbus (slave) ?
Я думал, то просто дискретные сигналы. btnStart и btnReset поступают с ТМ. Программу можно запускать/останавливать и обнулять как через дискретные входы ПЛК, так и с ТМ

capzap
08.04.2011, 17:21
PLC_Configuration_OWEN.pdf стр.50-52

capzap
08.04.2011, 17:23
Программу можно запускать/останавливать и обнулять как через дискретные входы ПЛК, так и с ТМ
Это все можно делать используя OR и необходимые проверки

Andriy6
08.04.2011, 17:43
Это все можно делать используя OR и необходимые проверки
Так у меня это реализовано: IF start OR btnStart THEN

Ну, все Button заменю на 8 бит..

Разве неправильные переменные могут помешать программе быть записанной в ПЛК :confused:

Преподаватель сегодня сказал, что проблема в отсутствии в PLC Cоnfiguration раздела "Modbus Master" - и по этому нету связи. Можете точно сказать, нужно ли в PLC Cоnfiguration настраивать связь КДС - ПЛК для записи программы?
Я не могу этого понять. Качал на форуме примеры программ с Modbus slave без Modbus Master.

capzap
08.04.2011, 17:58
КДС связывается с ПЛК по другому протоколу, ни какого отношения к модбас неимеющего, в обучалках приводится пример простейшей программы состоящей из одного символа ";", без настройки конфигурации ПЛК, такой проект заливается в ПЛК и работает, где у преподавателя появилась инфа что для этого нужен модбас непонятно

Andriy6
10.04.2011, 16:55
Так, подправил Button. Правда, не стал заморачиваться с упаковкой битов. Без ПЛК под рукой - это рискованное дело.

Преподаватель дал рабочий проект. Говорит, что проект рабочий потому, что там есть modbus master. По-моему, тот мастер говорит лишь о том, что ПЛК будет выступать ведущим в сети RS485, в которую входят модули ввода-вывода.

Неужели лишняя переменная Button стала причиной ошибки связи? :confused:
Преподаватель сказал, что связи нету потому, что ПЛК не понимает переменные, описанные в Modbus. Но почему-то предлагает решить проблему созданием Modbus master паралельно с Modbus slave. Если так сделать, то получится, что в сети RS232 ПЛК будет и мастером и слейвом ? :o

__________
В архиве два файла ехр: мой проект и преподавателя.
Все еще прошу помощи, товарищи :o

capzap
11.04.2011, 08:51
Вы рассуждаете правильно, насчет модбаса. По поводу преподавателя если уж он специалист, то кто ему мешает в Вашем проекте добавить мастера и убедится в правоте своей теории, если он загружает проекты в ПЛК не через КДС, а иным способом, то тогда и вопросы надо задавать "иным".
Я никогда не держал в руках ПЛК ограниченного исполнения,т.е. с буквой "L", может причина кроется в этом. Вы раньше писали что у них появляется краснота в проекте, пусть скинут скрин этих ошибок, пока есть красный шрифт, проект скорее всего не загрузиться

Andriy6
12.04.2011, 19:34
Сегодня снова провалилась попытка.
"# 2002. 1.5 22:35:15 # 6 Module not initialized Error! Device id равно 200 not initialized"

Значит, что модули подключены, но в конфиге ПЛК не указаны ?

Gans
12.04.2011, 22:59
Взгляни вот это:
http://www.owen.ru/forum/showthread.php?t=7062&highlight=%D1%CF270
Попробуй вдруг твой случай.
P. S. по моему "Device id = 200" это компорт RS232, а всё остальное должно работать :-)

Andriy6
12.04.2011, 23:26
Спасибо, попробуем.
Пока что добавил модули в конфиг..

Надо разбираться в этих делах. А то на работе наверное скоро возьмем ПЛК110 для одного проекта..

Andriy6
27.04.2011, 18:26
Сегодня пробовали загрузить проект с добавленными в КДС модулями ВВ - не помогло. В следующий раз будут отсоединять модули.
Ресет оригинал еще не пробовали..

Николаев Андрей
27.04.2011, 19:03
Сегодня пробовали загрузить проект с добавленными в КДС модулями ВВ - не помогло. В следующий раз будут отсоединять модули.
Ресет оригинал еще не пробовали..

Это Вы о чем?

Andriy6
27.04.2011, 19:33
Да вот, помогаю студенту с ПЛК100, хотя сам впервые им занимаюсь. Он слабо разбирается и когда несет проект преподавателю чтобы записать в ПЛК, каждый раз выскакивают ошибки и никаких попыток исправить не делается, потому что не знает, что можно пробовать изменить. А преподаватель или сам не знает, или же не хочет помогать.
У меня на работе нету ОВЕН ПЛК - хотят заказать на один объект, но еще не заказывали.

В последний раз мне дали рабочий проект по другой теме, взятый у преподавателя. Там были определены модули ввода/вывода - я сделал так же и в своем проекте. Но этот вариант удалось проверить только сегодня. А завтра проверим метод пользователя Gans - сделать Сброс заводской.. пару раз:)
А еще надо пробовать отключить модули и загрузить программу, в которой не описаны модули ВВ.

После добавления модулей ВВ в КДС и до этого невозможно загрузить программу в ПЛК. Ошибка после команды Онлайн - подключение:
# 2002; 2000. 1.1 0:5:29 # 6 Module not initialized Error! Device id = 200 not initialized

Николаев Андрей
27.04.2011, 20:29
Это не ошибка - это предупреждение. Вы в Конфигураторе ПЛК используете порт Debug (ну по крайней мере так указали).
И, видимо, через него же и программируете.
Особенность порта Debug (к стати описанная :) ):
Порт может работать как простой порт 232 или как порт для программирования.
Определяется режим работы просто: какой кабель воткнут в разъем при включении питания, или если контроллер был включен - перезагрузке.
Если кабель для программирования - порт как 232 работать не будет, если Вы даже кабель поменяете. Ну и наоборот.
То есть после программирования надо вставить другой кабель и перезагрузить ПЛК.

Andriy6
27.04.2011, 23:34
Информация интересная, спасибо.
Но у них не получается даже записать программу в ПЛК. А перед записью преподаватель вообще отключает ПЛК и ПК, подключает кабель и включает все.

Николаев Андрей
28.04.2011, 02:35
Пусть снимут лог гипертерминала.