|
Модераторы: ama_kid |
|
UniBomb |
|
|||
Новичок Награды: 1 Профиль Группа: Участник Клуба Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Добрый день. Всем директлоджикам назло создали свой ПЛК и написали свою мини-SCADA систему. Вот в ней то как раз и проблема. Эта система отдалённо напоминает карту Карно и довольно ограниченна функционально. Разрабатывать её дальше смысла я не вижу, т.к. первый же реальный проект показал негодность этой системы как таковой. Естественно программировать контроллеры приходится вручную на родном Си. Начальство же не переубедить бросить затею с дальнейшей разработкой, что надо делать по уму - сделать реализацию существующего языка программирования ПЛК с заточенностью под наши нужды. Т.к. начальство совсем не грамотно в этом вопросе, сложностей с нашей системой не видит. У меня к сожалению тоже не хватает познаний в этом вопросе, поэтому мне нехватает убедительности моих аргументов (а ведь все неудачи и задержки приравниваются на мой счёт), посему прошу Вас ответить на пару вопросов:
- какие ныне существующие языки применяются для программирования ПЛК? - все SCADA системы заточены под какую то конкретную архитектуру? Ну т.е. можно ли взять готовую SCADA систему, что бы результат программирования можно было запустить на AVR? - какие наиболее популярные SCADA (платные и если есть бесплатные) есть на сегодняшний день? - может я чего то неверно понимаю? Это сообщение отредактировал(а) UniBomb - 30.9.2009, 12:10 |
|||
|
||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: нет Всего: 154 |
е******е, например LD Это не языки программирования, они скорее похожи на обычные релейно-контактные схемы, это делается специально для того, что-бы их могли программировать КИП-овцы и прочая нечисть. Могу порекомендовать программировать ваши ПЛК не на Си, а на lua, интерпретатор легко встроить в свой код и полностью им управлять, в памяти оно занимает около 200Кб, программировать просто, так-же lua - самый быстрый из скриптовых языков. Я знаю, что некоторые ПЛК позволяют программировать к примеру на basic-e или на pascal-e, например контроллеры Овен. Это лучше чем LD и ему подобное - извращение. Добавлено через 1 минуту и 16 секунд что ты понимаешь под SCADA? |
|||
|
||||
UniBomb |
|
|||
Новичок Награды: 1 Профиль Группа: Участник Клуба Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Lazin, ты меня удивляеш всё больше)))
всё таки они ими и являются... Если честно, то не вижу никаких преимуществ... lua насколько я знаю с-подобный скриптовый язык, таким образом программирование на lua будет мало отличаться от программирования на Си. Тем более мы же только разработчики, вот доделаем этот ПЛК и отдадим его в отделы проектирования, КИПиА, а там то сидят люди далёкие от программирования как такового. Вот использовали они раньше ДиректЛоджик, сейчас перешли на что-то Шнайдеровское и программировали на LD. Думаю им сложно будет выучить Си или Lua.... Та SCADA что была разработана нами представляла из себя что-то типо карты состояний, в которой нельзя делать скажем условия, циклы и т.д. Поэтому вопрос и встал... За это время я хоть провёл небольшие маркетинговые исследования и разузнал на каких языках эти самые ПЛК программируются, так что вопрос пока стоит только один: С точки зрения программиста может так оно и есть, но ведь автоматчиков изначально учили мыслить в котексте этих языков. Да и потом многие из них пришли из электротехники и релейные схемы им кажуться понятнее.... то же что и педивикия:
|
|||
|
||||
Mazzi |
|
|||
Правильный Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: нет Всего: 21 |
http://ulei.by.ru/links.html на этой странице есть ссылка на компилятор с языка LD, рекомендую.
-------------------- Мне нужны помощники. |
|||
|
||||
UniBomb |
|
|||
Новичок Награды: 1 Профиль Группа: Участник Клуба Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Mazzi, жаль что на работе я не могу выйти на этот сайт (закрыт доступ по подозрению в содержании шпионских модулей), хотя это нужно именно по работе....
|
|||
|
||||
ama_kid |
|
||||
АСУТП-кодер Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 1 Всего: 95 |
Сам по институтской специальности являюсь как раз "автоматчиком", поэтому мое имхо - надо держать всю эту "нечисть" подальше от программирования, а тем более управляющего оборудования, пусть сидят и настраивают датчики. Я последние годы перешел специально на более трудновоспринимаемые методы программирования контроллеров (а также методу скрытия части кода в системные библиотеки), чтобы этим самым киповцам не приходило в голову менять что-нибудь самим - было несколько случаев, когда они что-то меняли без согласований и испытаний - в итоге косяки летели в нашу сторону, а они оставались чистыми и пушистыми. В принципе, практически каждая SCADA предоставляет набор средств для работы с ограниченным кругом обоурдования. Но практически во всех есть поддержка стандартных методов обмена. И если ваш AVR-поддерживает какой-либо из них - то его можно повесить практически на любую современную скаду, хотя бы через цепочку SCADA-KepWare. OPC-сервер Kepware поддерживает очень много протоколов. И даже если какое-то устройство он не понимает - то можно написать свою прослойку, которая будет поднимать данные с устройства и кидать по OPC-протоколу в сервер. А если сама SCADA является одновременно OPC-сервером (типа iFix, WinCC, Citect, etc), тогда и KepWare можно выкинуть, писать напрямую в SCADA... Т.е., на мой взгляд, самое главное - правильно спроектировать физическое подключение устройства к SCADA, а уж обмен информацией в этом случае можно обеспечить всегда... Причем это закреплено в стандарте! "ты просто не умеешь их готовить" Зачастую какой-то кусок кода написать получается гораздо быстрее на LD или FBD. К тому же, при наличии у среды разработки продвинутых средств отладки - такой способ написания программ получается очень наглядным (собственно, практически только в режиме отладки я их и использую)... Самый большой минус этих языков с моей точки зрения - слишком большое время модификации кода.
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: нет Всего: 154 |
разница огромная, у "больших" ПЛК, вроде Omron или Bosh на борту достаточно мощный процессор, какая-то операционная система реального времени, и специальная программа, которая исполняет программу, написанную на IL(что-то вроде стандартизированного ассемблера для ПЛК). Программа на IL может быть создана к примеру с помощью CoDeSys. В принципе, на AVR это реализовать сложно, поэтому я и предложил lua, вместо программы на IL можно загружать lua скрипт и выполнять его |
|||
|
||||
Mazzi |
|
|||
Правильный Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: нет Всего: 21 |
UniBomb, если нужно могу запаковать и прислать тебе по почте.
-------------------- Мне нужны помощники. |
|||
|
||||
UniBomb |
|
|||
Новичок Награды: 1 Профиль Группа: Участник Клуба Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
к сожалению я на это повлиять никак не могу А то бы они у меня... это типа поддержка стандартных протоколов обмена (модбас, профибас и т.д.)? Если ответ на предыдущий вопрос "да", то затрудняюсь ответить... В общем в качестве сердца нашего ПЛК стоит ATMega64 (8-ми битный RISC микроконтроллер), в голом виде ничего не поддерживающий. Реализация протоколов достигается программным путём. Вот тут ты меня запутал. Объясни пожалуйста по-простому, что ты имееш в виду под термином SCADA. Моё пониамние такое - это программный комплекс для разработки управляющей ПЛК. Т.о. нариовал я в ней релейную схему, нажал кнопочку "build" и на выходе у меня готовая прошивка, которую я заливаю в свою мегу.... Наш "маленький" ПЛК задумывался как нечто очень дешёвое (себестоимость прибора получилась что-то окола 700 рублей) для применения в случаях когда готовые брендовые ПЛК избыточны (как по функциям, так и по цене). Производительность соответсвенно тоже уменьшилась, но в приницпе Ось (многопоточную и реалтаймовую) залить удасться... Mazzi, спасибо, но я и дотерплю до вечера, когда домой приду и смогу всё изучить.... |
|||
|
||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: нет Всего: 154 |
на ATmega64 - вряд-ли, так-как MMU у него нет, то-есть процессы будут делить все 4Кб памяти между собой, как это должно работать я не представляю видимо придется писать интерпретатор IL самостоятельно, хотя, возможно на AVR freaks есть что-то готовое и не сильно бажное... |
|||
|
||||
ama_kid |
|
|||
АСУТП-кодер Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 1 Всего: 95 |
Добавлено через 1 минуту и 25 секунд есть подозрение, что IL для асушников будет менее понятен, чем родной С++ -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: нет Всего: 154 |
я думаю так, UniBomb должен написать программу для контроллера atmega64
Эта программа, должна позволять какой-либо внешней программе загружать в память контроллера другую программу, которая бы управляла выводами контроллера таймерами и прочей периферией. Эту вторую программу нужно писать на LD или чем-то аналогичном, так? Если так, то программа на LD и подобных языках легко преобразуется в программу на IL, главное, что-бы поддерживались основные инструкции языка IL. Я уже давал ссылку на CoDeSys, я с этой штукой не работал, но насколько я знаю, она позволяет это делать. То-есть схема такая: пользователь, в какой-либо IDE пишет программу на LD, далее эта программа "компилируется" в IL и скармливается контроллеру, зашивается в EEPROM. Далее контроллер в просто просыпается по таймеру, скажем 1 раз в 100 мс и выполняет всю эту программу. Для взаимодействия со SCADA системами нужно реализовать какой-нибудь стандартный протокол связи, думаю подойдет modbus |
|||
|
||||
Mazzi |
|
|||
Правильный Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: нет Всего: 21 |
С CoDeSys не так всё просто, для того, чтобы востользоваться ею, нужно вступить в члены разработчиков CoDeSys, контроллер должен соответствовать каким то там нормам, в общем большой геморрой для больших производителей. -------------------- Мне нужны помощники. |
|||
|
||||
UniBomb |
|
|||
Новичок Награды: 1 Профиль Группа: Участник Клуба Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Вот люблю я винград))) Здесь на все вопросы ответят Задал эти же вопросы здесь и практически тишина.... А ведь там спецов по этому профилю должно быть побольше.
Всё именно так и обстоит дело Вообще в идеале всё должно выглядеть примерно так - в памяти программы в конце зашиты все основные функции и переменные (функции организации протокола модбас, функции считывания состояния входов, функции изменяющие состояния выходов, переменные в которых храняться текущие значения входов/выходов и т.д.). В начало записывается код, который наворотили АСУшники и прочие, и который по необходимости и вызывал бы эти подпрограммы. Я правда ещё не уверен можно ли такое провернуть... А вообще в идеале написать свою ИДЕ и компилятор всех этих языков (практически неосуществимо)... Добавлено через 3 минуты и 55 секунд Кстате, тут всё время про киповцев говорили (в том числе и я).... Может быть имелись в виду АСУТПшники? Т.к. киповцы же по всяким датчикам и показаниям и ни к какому программированию не допускаються под страхом кровавой расправы... |
|||
|
||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: нет Всего: 154 |
ага, как-же в памяти программ у тебя должен быть твой код, и все, а программа которую "наворотили" не должна быть нативной. Она должна быть простым текстовым или (лучше)бинарным файлом и интерпретироваться твоей программой. Я думаю интерпретатор IL не сложно реализовать. Это сообщение отредактировал(а) Lazin - 18.12.2008, 18:16 |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SCADA-системы и контроллеры стандарта IEC (МЭК) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |