PDA

Просмотр полной версии : Дискретные входы и выходы



Kitaro
22.11.2011, 10:59
Ребята, подскажите пожалуйста в какую сторону копать =(
ПЛК63

В кодесис пишу довольно простую логику



%IX1 %IX2 %QX1
----||-------||------------------------()


не работает, методом проб и ошибок выяснилось, что нужно писать так:
%IX0.0.0.0, %IX0.0.0.1 и так далее

но при этом выход как я не писал все равно выдает ошибку при компиляции, а именно:
%QX1, %QX0.0.0.0, %QX0.1.0, %OUT1, OUT1

если посмотреть в конфигурации, то там отображается область ввода/вывода: %IB0.1 и %QB0.1

пробовал и %QB0.0, %QB0.1 все равно идет ошибка при компиляции:

Ошибка 3278: Неверный адрес =(

подскажите где можно почитать про правильную адресацию области входов/выходов

Извините, если баян или офтоп =( просто не понимаю как это делается правильно =(

ASo
22.11.2011, 11:30
1. Правильную адресацию Вы увидите в PLC Configaration
2. В ПЛК63 нет дискретных выходов в классическом понимании дискретного выхода. В нем присутствуют аналоговые выходы. С диапазоном значений от 0.0 до 1.0 (ШИМ модуляция)ю Поэтому вам придется написать функцию для преобразования.

Николаев Андрей
22.11.2011, 11:38
Проще говоря дискетный выход не bool, а real.

Kitaro
22.11.2011, 12:24
Надеюсь bool_to_int будет работать:

http://i31.fastpic.ru/thumb/2011/1122/d2/cd98618abfa99dd8faa08347f5219dd2.jpeg (http://fastpic.ru/view/31/2011/1122/cd98618abfa99dd8faa08347f5219dd2.png.html)

ASo
22.11.2011, 12:29
BOOL_TO_REAL

Kitaro
22.11.2011, 13:12
хм, а как тогда в LAD работать с простейшей релейкой?
---||------||------bool_to_real------()
конечно не работает, потому что ему нужно тип данных bool на конце.

пипец, что теперь другой контроллер чтоли покупать? или изучать IL?

capzap
22.11.2011, 13:29
:) напишите на ST или FBD, конвертните в LD

ASo
22.11.2011, 13:45
Чего Вас так эти языки тянет???

%IX0.0.0.0 %IX0.0.0.1 B
----||----------||-------()

--------EN|BOOL_TO_REAL|---Q
B
Q- объявленный выход.

Kitaro
22.11.2011, 14:26
жесть =)))))




M7 M8 R1(bool)
---||--------||------()

| BOOL_TO_REAL | %QD0.1.0
-------|EN |----()
| |
-||-| |



Ошибка 4010: Несоответствие типов: невозможно преобразовать 'REAL' в 'DWORD'

приехали =))))

ASo
22.11.2011, 14:34
Повторяю - самый простой способ - это объявить имя переменной выхода в разделе PLC Configuration.

Kitaro
22.11.2011, 15:12
=( печально что простую логику реализуешь через 1 место =(

подскажите как сделать сименсовый move 0.00 to address?

http://i29.fastpic.ru/big/2011/1122/45/9aec0c7b52305930005d2a6220fb0245.png (http://fastpic.ru/)

а то ну совсем печаль хлестает =(

сименсы могу программировать а с нашими проблемы =( печаль, ребятки подскажите

заранее спасибо за понимание и поддержку!

Идея такая: есть 2 танка, там датчики наличия, если 2 танка в аварии по датчикам то сделать ресет (послать принудительно 0 в адреса) чтобы закрыть клапана ну и обработка различных состояний, просто не ожидал, что столкнусь в принципиально релейном устройстве с логикой ШИМ =(((((

Kitaro
22.11.2011, 15:13
Первый Q1 ессно работает, последующие - требуют bool

ASo
22.11.2011, 15:31
Не понял.
Пожалуйста.

capzap
22.11.2011, 16:40
сименсы могу программировать а с нашими проблемы =( печаль, ребятки подскажитеSCL нужно было учить :D

Николаев Андрей
22.11.2011, 22:44
Особенность контроллера... за универсальность всегда приходится платить...
Мы даем возможность использовать на ПЛК63 5 выходов как аналоговые. Но и соответственно надо немного допилить программу.

Kitaro
23.11.2011, 06:51
хм, понял принцип, а теперь подскажите где и какую библиотеку скачать чтобы мне был доступен блок MOVE, попробую использовать Q:=move(0.00) для снятия сигнала и move 1.0 для установки высокого уровня сигнала в выход.

capzap
23.11.2011, 06:57
стр 10-4 руководства CoDeSys_V23_RU.pdf

Kitaro
23.11.2011, 10:03
Все разрешилось пока только с помощью CFC, спасибо огромное ребята за понимание и поддержку!

Kitaro
23.11.2011, 15:50
Ребята, проверьте плиз, если кому то надо будет, выложу в примеры программ, хотя программа в принципе легкая.

Идея поочередной работы емкостей при наполнении.

Михаил Иванович
17.12.2011, 10:20
Особенность контроллера... за универсальность всегда приходится платить...
Мы даем возможность использовать на ПЛК63 5 выходов как аналоговые. Но и соответственно надо немного допилить программу.

Простите, Андрей, но вот вопрос - каким образом пользователь может использовать эту универсальность, то есть настраивать эти выходы в соответствии с текущими потребностями? Я ничего не нашел в документации о возможности перестройки контроллера на месте по своему желанию. Подскажите, пожалуйста, как это сделать?

Николаев Андрей
17.12.2011, 15:45
Речь шла не о перестройке контроллера, а о том, что выходов у ПЛК63 - 6 штук.
И Вы можете заказать контроллер с различной комбинацией выходов.
То есть может быть 1 реле (обязательно), и 5 других - реле, токовых выхода, выходов по напряжению, транзисторных выходов.

Но вот за счет того, что выходы могут быть разного типа - управляющая переменная не bool а Real типа.

Михаил Иванович
18.12.2011, 00:19
Понятно. То есть упомянутая выше Универсальность - для производителя. Идея, конечно, интересная, но, на мой взгляд, не однозначная. Пожалуй, я присоединюсь к мнению пользователя Kitaro от 22.11.2011, 15:12 : "=( печально что простую логику реализуешь через 1 место =(" Но я понимаю, что мое мнение может быть лишь результатом плохой подготовки.
Теперь конкретные вопросы, отчасти вызванные вышеупомянутой ситуацией с ПЛК-63. Я прошу Андрея на них ответить, поскольку мне кажется, что он здесь один из самых разбирающихся в проблеме людей. И конечно, тех, кто имел дело с ПЛК-150.
1. Я правильно понимаю, что у ПЛК-150 дискретный вход - выход традиционные? Они бинарные, то есть тип управляющей переменной BOOL и проблем с их программированием не возникает?
2. Я правильно понимаю, что у у ПЛК-150 с питанием 220 в дискретный вход срабатывает просто на замыкание контактов, то есть они активные, в отличие от ПЛК-150 с питанием 24 в?
3. Я правильно понимаю. что к ПЛК-150 может быть подключена панель ИП-320, причем не к тому гнезду, через которое идет программирование контроллера?
4. Может ли программирование панели и контролера осуществляться в едином комплексе, то есть эта панель будет являться аналогом встроенного экрана ПЛК-63? Или ее надо программировать как-то совсем отдельно. Вопрос связан с тем, что в описании на сайте есть отдельное программное обеспечение панели, где указан ее конфигуратор. Или конфигуратор - отдельно, а программирование вывода на нее состояний входов - выходов программируется в комплексе с контроллером?
Прошу простить за длинноты.

ASo
18.12.2011, 06:39
Пожалуй, я присоединюсь к мнению пользователя Kitaro от 22.11.2011, 15:12 : "=( печально что простую логику реализуешь через 1 место =(" Но я понимаю, что мое мнение может быть лишь результатом плохой подготовки.Его просто обучили в другой парадигме.

Николаев Андрей
18.12.2011, 10:53
Ну что-ж... помолясь...

Понятно. То есть упомянутая выше Универсальность - для производителя. Идея, конечно, интересная, но, на мой взгляд, не однозначная. Пожалуй, я присоединюсь к мнению пользователя Kitaro от 22.11.2011, 15:12 : "=( печально что простую логику реализуешь через 1 место =(" Но я понимаю, что мое мнение может быть лишь результатом плохой подготовки.

Через одно место всегда реализуется не по тому, что универсально или нет, а по тому, что не было опыта работы с такими задачами... Человек, который сталкивался не только с дискретной логикой, но и с ШИМ даже порадуется такому подходу к управлению выходом...
Единственно, что надо не забыть пользовательскую документацию почитать, чтобы знать про особенности. А вот этого у нас не любят делать :)


1. Я правильно понимаю, что у ПЛК-150 дискретный вход - выход традиционные? Они бинарные, то есть тип управляющей переменной BOOL и проблем с их программированием не возникает?

Это смотря что Вы понимаете под традиционными :)
С точки зрения работы с областью памяти - да, они определяются битами.


2. Я правильно понимаю, что у у ПЛК-150 с питанием 220 в дискретный вход срабатывает просто на замыкание контактов, то есть они активные, в отличие от ПЛК-150 с питанием 24 в?
ПЛК150-24 так и не появился. И уже, наверное, вряд ли появится.

У ПЛК150 входы действительно "активные", то есть к ним можно подключать датчики типа сухой контакт без использования внешнего БП.


3. Я правильно понимаю. что к ПЛК-150 может быть подключена панель ИП-320, причем не к тому гнезду, через которое идет программирование контроллера?

Программирование контроллера может вестись минимум через два "гнезда" (разъема). Это упомянутый Вами порт RS232-Debug или порт Ethernet.
Обмен с панелью может быть налажен через интерфейс RS-485, выведенный на клеммы.


4. Может ли программирование панели и контролера осуществляться в едином комплексе, то есть эта панель будет являться аналогом встроенного экрана ПЛК-63? Или ее надо программировать как-то совсем отдельно. Вопрос связан с тем, что в описании на сайте есть отдельное программное обеспечение панели, где указан ее конфигуратор. Или конфигуратор - отдельно, а программирование вывода на нее состояний входов - выходов программируется в комплексе с контроллером?

Не может.
ПЛК и панель - это два разных, совершенно не зависящих друг от друга устройства. Они могут работать как в месте, так и с контроллерами\панелями других производителей, при поддержке соответствующих интерфейсов и протоколов.
Программирование и настройка обмена с панелью в ПЛК делается в CoDeSys.
Конфигурирование индикации и настройка обмена в панели делается с помощью конфигуратора.
И все, что их связывает - кусочек кабеля, и карта регистров ModBus.

Прошу простить за длинноты.
Ничего, мы привыкли и к длиннотам и широты у нас разнообразные;)

Михаил Иванович
18.12.2011, 12:02
Во-первых, спасибо!
Во-вторых:


Человек, который сталкивался не только с дискретной логикой, но и с ШИМ даже порадуется такому подходу к управлению выходом...


Несомненно.



Единственно, что надо не забыть пользовательскую документацию почитать, чтобы знать про особенности. А вот этого у нас не любят делать :)


А вот это неправда. Читал я документацию. Не буду сейчас ее критиковать - не место, но отмечу, что в документации эта особенность не акцентируется. О сложностях использования некоторых языков стандарта МЭК при программировании этого контроллера не говориться ни слова. На выставке сотрудник фирмы, с которым я беседовал, тоже не отметил этого обстоятельства. Может быть, и сам не знал. Причем, речь шла именно о выходах, в том числе, о дискретных. И на сайте о ней умалчивается. А ведь это очень существенная особенность. Я бы сказал, определяющая, поскольку тип данных имеет весьма существенное значение. Этот контроллер надо помещать в отдельную категорию.


Это смотря что Вы понимаете под традиционными :)

Под традиционными я понимаю бинарные. Или у них есть какие-то особенности, которые сразу не видны?


Не может.
ПЛК и панель - это два разных, совершенно не зависящих друг от друга устройства.

Но на эту панель может выводиться состояние входов - выходов ПЛК-150?
И могут ли с нее изменяться параметры регулирования на ПЛК-150? На сайте в разделе "Основные функции ОВЕН ИП320" сказано "Чтение и редактирование значений параметров и передача их в сеть". Означает ли это, что с помощью кнопок на панели я могу изменить значение, например, температуры регулирования и сохранить это значение в контроллере, как это можно сделать с передней панели на ПЛК-63?


Ничего, мы привыкли и к длиннотам и широты у нас разнообразные;)


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

Спасибо, Андрей! И надеюсь на очередные ответы.

Николаев Андрей
18.12.2011, 19:04
Не подумайте, что цепляюсь, и говорить об этом надо - но на сколько критично, с точки зрения CoDeSys, что выходы управляются не Bool, а Real???
Несколько непривычно, согласен. Но с точки зрения программирования out:=bool_to_real(из чего). Не сложно ведь???
Как мне кажется для алгоритма это вообще не существенно, для программиста - конечно надо учитывать...

По панели.
Это независимые устройства, и от этого надо исходить. ИП320 ничего не знает о ПЛК150 в принципе.

А вывод информации о значении переменных в контроллере, задание значений переменным в контроллере, отображение входов и выходов осуществляется с помощью настройки обмена.

То есть Вы в ПЛК150 указываете какие переменные Вам необходимо позволять по сети читать\изменять.
В панели конфигурируете - по каким адресам ModBus в контроллере панели нужно считывать\записывать данные.

Есть в разделе ПЛК\примеры программ и полезности готовый пример. Даже несколько.

З.Ы.: Ну и в формате оффтопа: посетил за свою не длинную жизнь много широт, пока остановился на широте Москвы. :)

Валенок
18.12.2011, 20:39
...Причем, речь шла именно о выходах, в том числе, о дискретных...А ведь это очень существенная особенность. Я бы сказал, определяющая, поскольку тип данных имеет весьма существенное значение. Этот контроллер надо помещать в отдельную категорию..
??
Чисто пример :
Датчик давления, температуры, кнопочки, пуск частотника, управление частотой.
Чем здесь может отличатся релиз You_programm в зависимости от модели ПЛК ?

Михаил Иванович
20.12.2011, 10:47
Не подумайте, что цепляюсь, и говорить об этом надо - но на сколько критично, с точки зрения CoDeSys, что выходы управляются не Bool, а Real???
Несколько непривычно, согласен. Но с точки зрения программирования out:=bool_to_real(из чего). Не сложно ведь???
Как мне кажется для алгоритма это вообще не существенно, для программиста - конечно надо учитывать...


Не сложно, конечно. Для инженера или программиста с опытом работы при условии, что в документации внимание человека, который знакомится с вопросом акцентировано на этом обстоятельстве и есть соответствующие разъяснения и системные библиотеки. А я как-то такого не увидел. Думаю, что это проблема не контроллера (еще раз повторяю, что идея интересная) и не нашего интеллекта. Это проблема составления документации и стиля подачи информации. Вы скажете, что всего-то два человека эту проблему и обсуждают. Ну, во-первых, и два человека - люди. Во-вторых, я думаю, что в десять раз большее количество, из тех, кто знакомился с общим состоянием с целью выбора контроллера и фирмы, просто не стало ничего писать, а ушло от этой проблемы к другому производителю. Причем - не лучшему, и даже, правильнее сказать, не к нему, а от проблемы. Поэтому. если поднятые вопросы окажут положительное влияние на документацию, то это будет хорошим общим результатом обсуждения частного вопроса. В том числе и для тех людей, которые так и не решились задать свои вопросы.
А я решусь задать дальше.
1. При загрузке проекта il.pro, любезно предоставленного ASo 22.11.2011, 14:34, у меня не загружаются библиотеки SYSLIBTIME.LIB и SYSTASKINFO.LIB. При этом проектик работает, преобразование осуществляется. Эти библиотеки должны быть? Где их искать?
2. Правильно ли я понимаю, что "BOOL-TO-REAL" в этом проекте является функциональным блоком, написанным ASo на основе соответствующего оператора языка IL? Или есть такой стандартный библиотечный блок, которого я у себя не вижу? Где искать, если он есть? Почему он не появляется в списке компонентов проекта на вкладке POU? Так должно быть? Почему? Открыть чтобы просмотреть я его тоже не могу.

По сообщении Валенка 18.12.2011, 20:39:
Ничем не отличается. Но заметьте, Вы использовали выход ПЛК-63 так же, как выход ПЛК-150, то есть ШИМ выход как обычный бинарный и опять запустили частотную модуляцию, которая на этом выходе, если я правильно понял и так есть. В том то и состоит, если я опять-таки правильно понял, глубинный смысл этой идеи - в возможности использования этого выхода для ШИМ, без всяких дополнительных устройств. По иному, как мне кажется, овчинка выделки не стоила. Но может быть, я и ошибаюсь.



По панели.


Вчера купил ПЛК-150 220 У М. Выписал и теперь жду оплаты ИП-320. Надеюсь, что когда воткнусь в очередную проблему, которая для кого-то и не проблема вовсе, получить столь же квалифицированные ответы.



З.Ы.: Ну и в формате оффтопа: посетил за свою не длинную жизнь много широт, пока остановился на широте Москвы. :)
На Полярном Урале не были?

swerder
20.12.2011, 11:36
1. bool_to_real оператор преобразования, а не фукнциональный блок. это основа языка МЭК.
2. про библиотеки - как не загружаются? всплывает ошибка о том, что библиотеки не найдены? если да, то переустанавливайте кодесис

p.s. Михаил Иванович, по моему мнению, по сравнению с этим сообщением

надо немного допилить программу.
ваше

я думаю, что в десять раз большее количество, из тех, кто знакомился с общим состоянием с целью выбора контроллера и фирмы, просто не стало ничего писать, а ушло от этой проблемы к другому производителю.
...
В том числе и для тех людей, которые так и не решились задать свои вопросы.

смахивает на надуманность проблемы. люди, которые боятся задать вопрос и бегут "от проблемы" туда, где якобы все сделано под ключ, опять же по моему мнению, не являются показателем наличия "проблемы".
претензии вроде "ваши контроллеры горят через месяц, больше не куплю у вас, а пойду куплю вот там" это одно, а "проблемы" вроде "у вас дискретные выходы управляются не булевыми переменными, а реальными, пойду куплю другой контроллер" вызывают недоумение.
p.p.s. если человеку проще убежать за другим контроллером от такой проблемы, то по моему мнению, это говорит о нехватке опыта/знаний в области программирования промышленных логических контроллеров, но не о проблеме данного контроллера.

Михаил Иванович
20.12.2011, 13:22
1. bool_to_real оператор преобразования, а не фукнциональный блок. это основа языка МЭК.

Наверное, Вы хотели написать "языков", а не "языка", поскольку МЭК стандартизует пять, а в CoDeSys есть еще и шестой. Насколько я понял, это оператор преобразования в языке IL. А вот как с языком LD? Программа-то на нем. Я не увидел там возможности вставить в цепь оператор. Если Вы знаете - подскажите, пожалуйста.


2. про библиотеки - как не загружаются? всплывает ошибка о том, что библиотеки не найдены? если да, то переустанавливайте кодесис

Да, всплывает сообщение о том, что эти библиотеки (2 из 5) не найдены. Но остальные три ведь находятся. Что даст переустановка того же продукта? Или его надо как-то по-другому установить? Я устанавливал обычным образом, не отклоняясь от указаний на экране, которых, как я помню, было совсем немного. Есть какие-то недокументированные правильные варианты? Или нужна какая-то другая версия? У меня 2.3.9.30. Или что-то дополнительное нужно установить?



p.p.s. если человеку проще убежать за другим контроллером от такой проблемы, то по моему мнению, это говорит о нехватке опыта/знаний в области программирования промышленных логических контроллеров, но не о проблеме данного контроллера.
О "проблеме контроллера" и слова не было. Я с самого начала говорил о том, что идея (если, конечно, я ее правильно понял) интересная, хотя и неоднозначная. Я бы назвал это "особенностью". А раз такая особенность существует и время от времени люди на нее натыкаются. то хорошо было бы выпукло отразить ее в документации и на сайте. Причем подать ее с маркетинговой точки зрения можно было бы просто замечательно.
А насчет нехватки знаний и опыта - тут Вы несомненно правы. Мы здесь, если я правильно понимаю. как раз и для того и собрались, чтобы взаимно повысить уровень знаний и набраться опыта. И то, что кто-то спрашивает, а кто-то отвечает, ещё не говорит о том, что первый глуп. Задать осмысленный вопрос чрезвычайно сложно. Сложнее, чем дать осмысленный ответ. При этом заметим, что осмысленно отвечающий поднимает свой уровень даже больше, чем получающий ответ.

swerder
20.12.2011, 13:50
Наверное, Вы хотели написать "языков", а не "языка", поскольку МЭК стандартизует пять, а в CoDeSys есть еще и шестой. Насколько я понял, это оператор преобразования в языке IL. А вот как с языком LD? Программа-то на нем. Я не увидел там возможности вставить в цепь оператор. Если Вы знаете - подскажите, пожалуйста.

да, оговорился, это зашито в сам стандарт МЭК, а не в конкретный язык, да и языков всеже 6 по стандарту. тут особенность в том, что эти языки все такие разные создавались для того, чтоб удовлетворить потребности разных программистов, привыкших к разным языкам. так получилось, что релейный язык по большей части подходит для создания простеньких релейных логических связей. урезанный он. для электриков делался.
кстати, а чем обоснован выбор в сторону только двух: IL и LD? почему бы не попробовать на других?



что-то дополнительное нужно установить?
на диске плк есть папка с названием Библиотеки CoDeSys, в ней есть эти 2 биб-ки, скопируйте их в C:\Program Files\3S Software\CoDeSys V2.3\Library
все нормализуется



не говорит о том, что первый глуп.

я не говорил, что тот кто не задает вопросов, а уходит за другим контроллером глуп. я лишь говорил, что вины этого контроллера в такой ситуации нет


Задать осмысленный вопрос чрезвычайно сложно. Сложнее, чем дать осмысленный ответ. При этом заметим, что осмысленно отвечающий поднимает свой уровень даже больше, чем получающий ответ.
красиво сказано, почти НЛП)

Михаил Иванович
20.12.2011, 15:03
Другие языки тоже будут пробоваться, если хватит способностей.
С библиотеками получилось, спасибо. Получается, что та версия, которую я устанавливал с сайта отличается от рабочей версии? В таком случае вопрос - что еще надо скопировать? Сразу отвечу почему не хочу взять и переустановить с инсталлятора на диске - на нем версия 2381, а у меня уже установлена 2390, если бы на нем была версия старше, то тогда, конечно, было бы резонно переустановить, а так пока воздержусь.
Что такое НЛО - знаю, а НЛП в природе не существует.

swerder
20.12.2011, 15:08
на сайте сейчас выложена версия 2.3.9.30, которая является актуальной. после ее установки в приведенный выше каталог необходимо скопировать библиотеки (файлы *.lib) с диска плк из папок библиотеки codesys и библиотеки ОВЕН

Валенок
20.12.2011, 15:33
...Вы использовали выход ПЛК-63 так же, как выход ПЛК-150, то есть ШИМ выход как обычный бинарный ... В том то и состоит.., глубинный смысл этой идеи - в возможности использования этого выхода для ШИМ, без всяких дополнительных устройств...
Нет. Глубинный смысл -алгоритм живет отдельно от железа и никак от него не зависит. Определяетесь с алгоритмом и формирует из/в него нужные данные/типы. И релиз его пишете на чем хотите. И только в конце на релиз натягиваете подходящую одежу в виде плк.
Если на улице зима, то пуховик или шуба - лишь бы тепло было. А вот ласты точно не подойдут. В данном случае.


НЛП в природе не существует
Под ним обычно подразумевают манипулирование - оно очень даже есть

Михаил Иванович
20.12.2011, 15:47
swerder'у
- Спасибо, скопируем.
Валенку
С первым Вашим утверждением не могу согласиться. Алгоритм программы зависит от железа, на котором она будет реализовываться. Представьте себе крайний случай - у нас нет аналоговых выходов, а надо осуществлять пропорциональное регулирование. Алгоритм в этом случае будет другой, чем при их наличии.
Второе Ваше утверждение мне кажется верным в той его части, что да, влиять пытаются (вспоминаем "Ширли-мырли"), но далеко не все, что нам пытаются скормить (НЛП, например) существует в реальности.

Валенок
20.12.2011, 18:18
Представьте себе крайний случай - у нас нет аналоговых выходов, а надо осуществлять пропорциональное регулирование. Алгоритм в этом случае будет другой, чем при их наличии.
А накой другой ?
Между real-выходом алгоритма и дискретными выходами плк всего лишь добавится прокладка в виде адекватного преобразователя.Рукописного или библиотечного - вторичный вопрос

Более крайний случай - на улице холодно, а кроме ласт и зонтика ничего нет. И то есть выход. Быстро-быстро бежать например.
Частотником нужно управлять аналоговым сигналом, а есть только плк100(8di,6do) ?
Нивапрос - приезжаем ночью на склад овена, cторожу по башке плкой100, грузим плк150 или 154 и на объект - не выход ?
Ну или прикрутить к плк100 мву8. Какая принципиальная разница?


Давайте тогда вглубь. Вообще нет плк. А регулировать частотник надо - берем ..джика, частотник на ручник, объясняем алгоритм :
-если стрелка сюда - крутить сюда..
-если тут загудело - включить это..
И обработку исключений добавляем :
-если непонятно чо - звонить по номеру...
Где здесь привязка к железу ?
И автонастройка пида у этого модуля расширения покруче овеновского библиотечного будет.

Если код зависит от железа - это всего лишь ограничение а не зависимость.

Алексей Дмитриев
20.12.2011, 22:26
Собственно, много букофф, не асилил...:D
http://s005.radikal.ru/i212/1112/77/c51ec99b9c0f.jpg (http://www.radikal.ru)
Чего уж проще-то, на LD.
КМ1 - Булева переменная. КМ1_SHIM - собственно выход REAL. Если учесть, что выходов всего 6, проще некуда. Зато, если нужно, скажем регулировать температуру, подключаем выход прямо на твердотелку, и вперед - ШИМ генератор уже присутствует.:)

Валенок
20.12.2011, 22:54
LD ? А что это ? В смысле где ШИМ ?

Михаил Иванович
21.12.2011, 09:56
Если код зависит от железа - это всего лишь ограничение а не зависимость.

Ну. можно, подойти и так.
Впрочем, я не специалист, извините суждения дилетанта.

Алексей Дмитриев
25.12.2011, 14:00
LD ? А что это ? В смысле где ШИМ ?
Ladder Diagramm, однако....
Здесь кусок программы, как использовать выход ПЛК-63, как обычный дискретный, с чего, собственно и начался данный топик.:p

Валенок
25.12.2011, 19:34
А чем пост №5 от ASo не угодил.
А-а-а, знаю. LD энто не тянет ... :)

ASo
25.12.2011, 19:51
Ну, не знаю.
Я не пользуюсь LD, но если бы приспичило - написал бы стандартный FB с преобразованиями. И забыл бы про этот вопрос.

Валенок
25.12.2011, 20:11
но если бы приспичило
У Вас наказывают так ?

Николаев Андрей
26.12.2011, 12:22
Не сложно, конечно. Для инженера или программиста с опытом работы при условии, что в документации внимание человека, который знакомится с вопросом акцентировано на этом обстоятельстве и есть соответствующие разъяснения и системные библиотеки. А я как-то такого не увидел.

Спасибо, учтем, хотя в документации старались отразить.

А я решусь задать дальше.


1. При загрузке проекта il.pro, любезно предоставленного ASo 22.11.2011, 14:34, у меня не загружаются библиотеки SYSLIBTIME.LIB и SYSTASKINFO.LIB. При этом проектик работает, преобразование осуществляется. Эти библиотеки должны быть? Где их искать?

Вот тут уход к другим производителям не поможет, и хотите Вы того или нет - этот вопрос требует изучения с Вашей стороны. Что такое библиотека, как подключить библиотеку в проект если её нет, где хранятся библиотеки, и куда их нужно поместить, чтобы они были видны... Все это описано и в документах Кодесис и в нашем руководстве по программированию.
Хранятся они в соответствующей директории Кодесис.
Взять их можно на диске или на сайте. Большая часть автоматически ставится вместе с Кодесисом.
Устанавливаются в проект с помощью ресурса Кодесис - менеджер библиотек...
В двух словах не объяснишь - в документации целый раздел :)


2. Правильно ли я понимаю, что "BOOL-TO-REAL" в этом проекте является функциональным блоком, написанным ASo на основе соответствующего оператора языка IL? Или есть такой стандартный библиотечный блок, которого я у себя не вижу? Где искать, если он есть? Почему он не появляется в списке компонентов проекта на вкладке POU? Так должно быть? Почему? Открыть чтобы просмотреть я его тоже не могу.

Aso Скорее всего сделал проект "без указания контроллера". А при этом никакие библиотеки не подгружаются автоматически.
Здесь вопрос к предыдущему же моему сообщению. Вам таки надо почитать мануалы по контроллерам: что такое операторы, функциональные блоки, функции... Состав основных библиотек...
Так, bool_to_real является стандартным ОПЕРАТОРОМ (как и все другие преобразования типов). Использовать этот СТАНДАРНЫЙ оператор можно, если у Вас в проекте подключена библиотека Standart.lib


По сообщении Валенка 18.12.2011, 20:39:
Ничем не отличается. Но заметьте, Вы использовали выход ПЛК-63 так же, как выход ПЛК-150, то есть ШИМ выход как обычный бинарный и опять запустили частотную модуляцию, которая на этом выходе, если я правильно понял и так есть. В том то и состоит, если я опять-таки правильно понял, глубинный смысл этой идеи - в возможности использования этого выхода для ШИМ, без всяких дополнительных устройств. По иному, как мне кажется, овчинка выделки не стоила. Но может быть, я и ошибаюсь.

Смысл идеи прост - одна и та же переменная может отвечать за значение, выдаваемое аналоговым выходом, и за значение реле. Сделать эту переменную типа bool не представляется возможным из за аналогового выхода.


Вчера купил ПЛК-150 220 У М. Выписал и теперь жду оплаты ИП-320. Надеюсь, что когда воткнусь в очередную проблему, которая для кого-то и не проблема вовсе, получить столь же квалифицированные ответы.
На Полярном Урале не были?
Не сомневайтесь, постараемся помочь. Но пока панель идет рекомендую посмотреть примеры и почитать мануалы...
http://www.owen.ru/forum/showthread.php?t=11273

Про полярный Урал - это приглашение??? :)

Михаил Иванович
26.12.2011, 20:04
Спасибо, что не оставляете своим вниманием.

Спасибо, учтем, хотя в документации старались отразить.
Вопрос по документации ставится не так, что там не отражено, а так, что отражено, на мой взгляд, не совсем ярко. Во всяком случае, в глаза не бросается. Вообще, правильное написание доходчивой документации, вещь сложная, зависящая от нескольких факторов, наверное, обсуждение этого вопроса здесь излишне, но уверен, что Вы и сами это понимаете.


этот вопрос требует изучения с Вашей стороны. Что такое библиотека, как подключить библиотеку в проект если её нет, где хранятся библиотеки, и куда их нужно поместить, чтобы они были видны... Все это описано и в документах Кодесис и в нашем руководстве по программированию.
Да, несомненно. Просто эти библиотеки есть на маленьком диске, который идет с контроллером и их нет в установке CoDeSys, которую я брал с сайта. По совету пользователя "swerder" я их на этом маленьком диске нашел и скопировал в Library.



Aso Скорее всего сделал проект "без указания контроллера". А при этом никакие библиотеки не подгружаются автоматически.
Здесь вопрос к предыдущему же моему сообщению. Вам таки надо почитать мануалы по контроллерам: что такое операторы, функциональные блоки, функции... Состав основных библиотек...
Читаю и даже знаю, что это такое. Но знания и умения - это разные сущности. И вопрос был в другом, точнее два вопроса:
1. Вот Вы сами пишете: "Так, bool_to_real является стандартным ОПЕРАТОРОМ (как и все другие преобразования типов). "
Да, конечно, я это знаю, и эти операторы преобразования прекрасно видны в редакторе языка IL. Они описаны и в приложении D, раздел 10.19 Системные библиотеки CoDeSys. Но разве они могут быть включены в проект на языке LD? Вот я и спрашивал: если это можно, то как. В меню я такой возможности не увидел. Есть какая-нибудь хитрость?
2. Функциональный блок можно включить в проект на LD. Видимо у Aso это и есть функциональный блок. Но поскольку его нет в составе POU, то, следовательно, он должен быть из библиотеки. Из какой, как он получился? Ну не вижу я у себя таких блоков преобразования типов переменных. Должны быть?
Я не исключаю, что эти вопросы с высоты квалификации участников форума кажутся странными, но это же, наверное, простой вопрос и на него будет просто ответить.


Использовать этот СТАНДАРНЫЙ оператор можно, если у Вас в проекте подключена библиотека Standart.lib
Такая библиотека у меня есть. На картинке все библиотеки, что есть. Если они видны, значит подключены? Так ведь?
Но Вы опять говорите "оператор".


Смысл идеи прост - одна и та же переменная может отвечать за значение, выдаваемое аналоговым выходом, и за значение реле.
Да, это понятно. Понятно, что это дает производителю. Непонятно, что это дает пользователю. Все модификации, которые я видел на сайте включают или реле или аналоговый выход. А по идее, контроллер обладает ШИМ-выходом, то есть может формировать импульсы определенной скважности и частоты. Граничные состояния - ноль или единица, то есть, переход в Булеву логику. Я правильно это уловил из предыдущего нашего обсуждения и из настроек в конфигураторе ПЛК-63? То есть имеется возможность управлять устройствами на основе импульсной модуляции прямо с выхода контроллера. Без переходного блока ШИМ самого устройства. Но устанавливая реле или ЦАП, вы рубите это свойство. Или нет? Могу я управлять тем же реле не в бинарном режиме. а в режиме импульсном? Нужно ли для этого писать специальную программу - формирователь импульсов определённой частоты и скважности? Если нужно, то это можно сделать с любым бинарным выходом и тогда это не интересно. Или выход, на который поступит некоторое значение переменной, сделает это сам? Если это так. то это интересное решение, но, на мой взгляд, половинчатое. Я, конечно, не специалист, но, наверное, можно было бы зашить этот преобразовательный блок для типа переменной в железо и переключать режимы выходов (ШИМ или бинарный) либо просто перемычкой на контроллере, либо программно в Конфигураторе. Второе, наверное, лучше.


Не сомневайтесь, постараемся помочь. Но пока панель идет рекомендую посмотреть примеры и почитать мануалы...
Это конечно. Но чтобы правильно читать и понимать, нужен некоторый опыт, а его у меня пока нет. А панель я уже забрал.


Про полярный Урал - это приглашение??? :)
Я одиночка. Но если этот район интересен, можем обменяться опытом. По многим другим районам тоже. Если ищется группа, могу дать координаты человека, который регулярно организует такие походы. Водные. С ним можно надежно идти.

ASo
26.12.2011, 20:25
Aso Скорее всего сделал проект "без указания контроллера". А при этом никакие библиотеки не подгружаются автоматически.ASo сделал проект под ПЛК63. Это видно по PLC Configuration. Стандартные 5 библиотек естественно подключились автоматически.

ASo
26.12.2011, 20:32
1. Вот Вы сами пишете: "Так, bool_to_real является стандартным ОПЕРАТОРОМ (как и все другие преобразования типов). "Да, конечно, я это знаю, и эти операторы преобразования прекрасно видны в редакторе языка IL. Они описаны и в приложении D, раздел 10.19 Системные библиотеки CoDeSys. Но разве они могут быть включены в проект на языке LD? Вот я и спрашивал: если это можно, то как. В меню я такой возможности не увидел. Есть какая-нибудь хитрость?Да, естественно.
Через тулбар или Ctrl-B вставляете пустой блок, а затем - ручками правите название.
Для согласования с LD в блоках для данного языка введен вход EN. Блок срабатывает при подаче TRUE на него.

P.S. Просто LD - самый не любимый язык в Кодесис :( Отсюда Ваши проблемы.

ASo
26.12.2011, 20:56
Да, это понятно. Понятно, что это дает производителю. Непонятно, что это дает пользователю. Все модификации, которые я видел на сайте включают или реле или аналоговый выход. А по идее, контроллер обладает ШИМ-выходом, то есть может формировать импульсы определенной скважности и частоты. Граничные состояния - ноль или единица, то есть, переход в Булеву логику. Я правильно это уловил из предыдущего нашего обсуждения и из настроек в конфигураторе ПЛК-63? То есть имеется возможность управлять устройствами на основе импульсной модуляции прямо с выхода контроллера. Без переходного блока ШИМ самого устройства. Но устанавливая реле или ЦАП, вы рубите это свойство. Или нет? Могу я управлять тем же реле не в бинарном режиме. а в режиме импульсном? Нужно ли для этого писать специальную программу - формирователь импульсов определённой частоты и скважности? Если нужно, то это можно сделать с любым бинарным выходом и тогда это не интересно. Или выход, на который поступит некоторое значение переменной, сделает это сам? Если это так. то это интересное решение, но, на мой взгляд, половинчатое. Я, конечно, не специалист, но, наверное, можно было бы зашить этот преобразовательный блок для типа переменной в железо и переключать режимы выходов (ШИМ или бинарный) либо просто перемычкой на контроллере, либо программно в Конфигураторе. Второе, наверное, лучше.Вы совсем не прочитали руководство по программированию (не путать с руководством по эксплуатации!!!).
Естественно, можно и естественно, это реализовано! В конфигурации выхода вы просто задаете период ШИМ и мин. импульс ШИМ. И все. Меня лично не устраивает максимальный период ШИМ (65 с) но это совсем другая тема.

Николаев Андрей
28.12.2011, 09:20
1. Есть понятие оператор (простейшее действие, типа сложения), есть понятие функциональный блок, функция, программа. Все эти типы программных модулей могут быть подключены (вызваны) в любой программе любого типа...
Правила вызова четко описаны для каждого языка и для каждого типа данных. Да и CoDeSys сильно помогает, просто Вы пока не ощущаете его "ненавязчивую" заботу :)
Перед ASo снимаю шляпу... сам в отпуске, CoDesysа нету, проект не глянул, а симптомы были оч. похожи :(

Михаил Иванович
31.12.2011, 09:38
Да, естественно.
Через тулбар или Ctrl-B вставляете пустой блок, а затем - ручками правите название.
Для согласования с LD в блоках для данного языка введен вход EN. Блок срабатывает при подаче TRUE на него.

Как-то у Вас просто выходит. Правка названия пустого блока заставляет работать его как нам надо?! И больше ничего не надо? А какой же это пустой блок если у него есть название? Пустого блока я у себя не нашел. Наверное, Вы имели в виду заготовку блока какого-то определенного типа и просто назвали его пустым? Какого, что за блок? Я попробовал блок "AnalyzeExpression", но у меня пока не получилось. Буду пробовать дальше.


P.S. Просто LD - самый не любимый язык в Кодесис :( Отсюда Ваши проблемы.
Спасибо! Вашими устами, да мед бы пить!

Михаил Иванович
31.12.2011, 09:44
Вы совсем не прочитали руководство по программированию (не путать с руководством по эксплуатации!!!).
Естественно, можно и естественно, это реализовано!

Ну, "совсем не прочитал" - так сказать нельзя. Но чтобы все вот так с ходу схватить - это нужен специальный программистский склад ума. У меня он другой. Тут уж ничего не поделаешь, все мы не похожи друг на друга. И, наверное, это хорошо.