AntoNechayuk, не расстраивайтесь. У всех все когда-то не получалось. Сейчас подзагружен, как разгребусь - загружу что-нибудь с пояснениями. Вы, кстати, почту не получили?
Вид для печати
AntoNechayuk, не расстраивайтесь. У всех все когда-то не получалось. Сейчас подзагружен, как разгребусь - загружу что-нибудь с пояснениями. Вы, кстати, почту не получили?
почту пока так и не получил.... так что ломаю голову пока над дде... но думаю что это направление мне не подойдет, так как необходимо чтобы для работы включался сам плк и только прога на делфи... остальные программы (в данном случае серверы) если и подгружались - то только автоматически без установки соответствующих программ. + работа должна быть оперативна, ибо в будущем подразумеваю подключение минимум одного энкодера.
зы - хотя, быть может я и ошибаюсь, так как никогда с этим не работал еще.... в любом случае - спасибо всем за участие, сочувствие и практическую помощь. надеюсь архив на 13 мб или прийдет, или будет возможность скачать откуда-то....(лучше конечно с этого форума и ветки - уверен полезно для всех)
как только сделаю проект - обещаю выложыть на форум :)
AntoNechayuk, ловите минимальный проект (его можно сделать и другим способом, просто этот более показателен). Почитайте несколько сумбурное, но, насколько возможно, подробное описание. Вобщем, когда разберетесь и переделаете под свой ПЛК, думаю, дальнейшая модернизация Вам под силу. А возможностей у Delphi - немеряно (кроме того, дельфийский exe-шник на ПК может работать и без установленной Delphi, а кодесисовский OPC-сервер может быть установлен и без самой CoDeSys). Короче - все дороги перед Вами.
принял... респект за описание!
у меня плк 150-220-ум.... в кодесисе при компиляции пишет:3728 ошибка.... неверно указан адресс. как его описать еще не знаю...
а есть где-либо описание какие на моем плк все адресса?
вкладка "ресурсы"-> "конфигурация плк".
DO1 AT%QB0.0:BOOL;
DI1 AT%IB0.0:BOOL;
все равно пишет неверный адресс:confused:
а если открыть файл Scada.pro (я его экспортнул и потом создал проект и импортировал - после этого ошибка убралась, но файл конфигурации не найден, как я понимаю), то писал что:
Так может у Вас в CoDeSys нужный таргет-файл не установлен? Качайте и устанавливайте (там просто, в документации это есть).
Да, что-то было не так... таргет был... но что-то не так. Сейчас "ручками" пишу все по описанию - пока все ок.(дошел до Делфи):)Цитата:
Так может у Вас в CoDeSys нужный таргет-файл не установлен? Качайте и устанавливайте (там просто, в документации это есть).
вот ваши переменные (к примеру)
Var_global
Do1 At%ix0.0:bool;
Di1 At%qx1.0:bool;
End_var
заработало!. ура!! только в описании где-то ошибка(в пунктах Delphi). при нажатии на кнопку срабатывает выход плк, а цвет не меняется.... поставил изменение на событие кнопок и все пучком....:)
как еще можно регулировать опрос плк (меньше секунды?)
Временной промежуток опроса ПЛК я изменял в свойстве таймера "Interval"(чем меньше - тем быстрее). А насчет изменения цвета - так я и планировал менять его при подаче 24v на вход ПЛК, а кнопка в Delphi подавала сигнал на выход ПЛК (просто показать взаимодействие Delphi и ПЛК). Так что так и должно было быть, но, впрочем, Вам и карты в руки. Теперь, я думаю, сами все для себя поменяете так, как Вам самим надо.
Кстати, в случае переменных типа REAL (может пригодиться):
чтение из ПЛК
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=FloatToStr(dOPCServer1.OPCGroups[0].OPCItems[1].Value);
end;
запись в ПЛК
procedure TForm1.Button2Click(Sender: TObject);
begin
dOPCServer1.OPCGroups[0].OPCItems[1].WriteSync(StrToFloat(Edit1.Text));
end;
Удачи!
спасибо... уже многое что понимаю.
а нет ли где полного описания компонента орс?
к сожалению, не нашел (если вы именно этот компонент имеете ввиду). до того, что написал, кое-как сам дотумкал (методом тыка чаще всего). так что, если найдете - кидайте сюда, думаю там еще море неиспользованных возможностей. пригодится.Цитата:
а нет ли где полного описания компонента орс?
странно - записываю значение в плк со скады(Делфи, через ОРС, переменную counter) - то значение хранится только до следующей инициализации скады. После запуска обнуление происходит. Как записать так, чтобы хранилось всегда и не обнулялось?
для сохранения переменных в плк при отключении питания, они объявляются как "ретайн"(добавить к Var слово Retain) .например:
Var Retain
A1:int; (*сохраняемая в постоянной памяти переменная*)
End_var
даже используя Retain при запуске программы переменная в плк обнуляется.... почему??
Да не должна по идее. Может засада в коде. Киньте проект, будет время - гляну, да и из спецов по CoDeSys может кто-нибудь подскажет.
вот всё что накрутил:
при запуске программы, написанной на делфи - управление нажатием на пробел (при соотв. фокусировке на кнопке Run). счетчик в кодесисе в месагах большими буквами, а в делфи маленькими (при запуске программы выдает 2 месага для проверки)
думаю разберетесь...
и вопрос еще: этот компонент, как мне кажется, нехило подгружает систему.... как у вас?
http://www.owen.ru/forum/showthread....ghlight=RETAIN
Возможно, здесь ответ на Ваш вопрос. Кстати, проект Вы выслали неполный (Delphi). А насчет тормозов системы - что то не замечал.
перезалил:
получилось сохранить и прочитать значение из плк - только в событии "клика" кнопки (причем опрос с плк тоже время занимает какое-то.... как его редактировать?? где??) - а в таймере обнулялась переменная....
а вот проблема какая возникает - при переносе программы на другой комп, необходимо реализовать выбор сервера с самой программы. (вроде того как выбор сом порта).
скопировал exe файл на другой комп... установил только орс-сервер(кодесисовский) - не работает - пишет неопознанная ошибка....
Трудно сказать, не видев своими глазами. Явно с настройками конфигурации что-то не так. Посмотрите здесь по поводу dOPC и OPC-сервера CoDeSys: ProgramFiles->Kassl->dOPC->demo->DA->DA Client.
http://forum-ru.3s-software.com/view...&highlight=opc
Ну и небольшой пример по Ретайн-переменным(входы и выходы ПЛК инициализированы прямо в "Конфигурации ПЛК"). Проект на 110-м ОВЕНЕ (переделайте под свой) делает следующее:
Счетчик COUNTER_OWEN увеличивается на 1 при срабатывании DI1, сбрасывается в 0 при DI2 и сохраняет значение при выключенном питании.
Счетчик COUNTER_DELPHI увеличивается на 1 и сбрасывается в 0 при нажатии соответствующих кнопок в Delphi и сохраняет значение при выключенном питании.
с переносом вроде разобрался... (некорректные настройки сервера)
теперь самое главное - реализовать проект
уверен - все получится. удачи!
Кстати, опишите ошибки при переносе проекта с одного ПК на другой (у кого-то может та же проблема возникнет). Вы просто не сконфигурировали OPC-сервер CoDeSys? Несовпадение верcий ОС на обоих ПК? Или еще что то? Сам OPC-сервер устанавливали отдельным EXE-шником или при установке CoDeSys убрали все галочки за исключением серверов?
ошибка была из-за неправильной настройки сервера.
1. Установил ОРС, убрав все галочки в инсталляторе Кодесис, оставив только "Communication Modules"
2. Запустил ОРСсервер и настроил связь, проверив перед этим работоспособность обмена данными в HyperTerminal (как описано по адресу: http://owen.ru/forum/showthread.php?...+%F1+%EF%EB%EA). Не забыть проставить галку на SinglePLC и сохранить все. (тут и была, наверное ошибка - не проставил галку)
3. Важно чтобы версия Сервера совпадала с настройками в самой программе на Делфи. Я вручную описал подключение, задав имя сервера:4. Сейчас все работает. Хотя при запуске программы необходимо выводить сообщение любое, чтобы успел прочитать переменные из ПЛК... в противном случае присвоения будут нулевыми.(у меня подключение реализовано при запуске программы)Код HTML:dOPCServer1.ServerName:= '{7904C302-AC19-11D4-9E1E-00105A4AB1C6}';
dOPCServer1.Connect(dOPCServer1.ServerName);
Пробовал на другие компы ставить, только корректно все настраивать - все ок.
я бы установил отдельным - но где его взять???Цитата:
Сам OPC-сервер устанавливали отдельным EXE-шником
:eek:
сегодня не вижу переменных через компонент dOPC.... в чем проблема - не могу разобраться. Переустанавливал сам кодесис... куча раз перенастраивал как ОРСсервер так и в самом проекте - ничего.....
может триал все-таки работает не только на мессаги???:confused:
У меня dOPC стоит уже давно (даже не помню, когда устанавливал) и кроме сообщения при запуске ничем не докучает. Попробуйте dOPCServer1.ServerName настроить вручную, а не через присваивание '{7904C302-AC19-11D4-9E1E-00105A4AB1C6}' в коде.
почуму-то слетела галочка "Создавать описания" в "рабочей области" вкладки Ресурсов.... Пол дня возился вчера - пока не допер что нужно там посмотреть настройки... теперь работает.
А это как (т.е. что вы имете ввиду?) - через клик на самом компоненте и потом Сервер-Коннект? или ещё как-то?... (Просто английский плохо знаю, чтобы понимать хелп к dOPC):)Цитата:
Попробуйте dOPCServer1.ServerName настроить вручную
Я имел в виду, что можно было попробывать загрузить переменные в dOPC снова, через ручное подключение к OPC-серверу CoDeSys: "dOPCServer1.ServerName"-> нажатие кнопки в правом от него поле -> и т.д.(дальше Вы в курсе) без "dOPCServer1.ServerName:= '{7904C302-AC19-11D4-9E1E-00105A4AB1C6}'''. (Проверить наличие списка переменных или их отсутствие и тогда определиться, где искать: Delphi или CoDeSys). Ну если и так все выяснилось - тем лучше. Теперь уже знаете, какие ошибки могут возникать. Примеры в "ProgramFiles->Kassl->dOPC->demo" могут на что-нибудь полезное навести. Удачи! И не забудьте выложить проект (с ПОДРОБНЫМ описанием - как и что) - тема вроде популярна, посмотрите на количество просмотров. Многим может пригодиться.
проект пока не готов... в разработке :) есть только маленькая программка отображения в реальном времени изменения на входах моего ПЛК ...а как будет все (в проекте) работать - выложу....
Вот названия интересных компонентов для Делфи включающих светодиоды, тумблеры, стрелочные индикаторы и т.п.:
1.Abakus
2. Alpha (скины)
Скачать можна по ссылке:
http://admin.work.antonechayuk.opera...aring/content/
Нужно ввести будет пароль. Пароль вышлю на Ваш e-mail. Пишите его в персональные сообщения. Постараюсь отвечать всем, но только в рабочее время (с 8.30 - 17.00 Москва).
Здесь тоже большая подборка компонентов для Делфи. Пригодится и для собственной скады и еще много для чего...
http://www.delphiexpert.ru/component.php?page=1
AntoNechayuk, вышлите пароль мне в личку. Пригодится. Кстати, в дельфийском редакторе сами не пробовали рисовать? Те же кнопки, джойстики и т.д.
16 пропарочных камер, на каждой ПЛК-150.
Все в сети Ethernet (TCP/IP). В ПЛК-150 проект с поддержкой
OPC переменных, CoDeSys OPC Server.
На компьютере АРМ диспетчера:
- приложение написанное на Delphi 2009,
- для работы с OPC: Iocomp_Ultra_Pack_4.0.3 и для графиков (iPlot),
(ранее проект был на dOPC, но с Iocomp надежней и проще)
- Firebird SQL Server 2.0 для базы данных (компонент FIBPlus 6.9)
- гриды, деревья: компонент EhLib 5.0
- Отчеты: FastReport 4.7
Преподаю ПЛК, АСУ ТП студентам. Раньше давал MasterSCADA, TraceMode -
закрытые системы, документация покупается и т.д. ...
есть конечно скидки для учебных заведений, но это сильно ограничивает.
Пару дипломов сделали на SCADA и отказались, получается я изначально
привязываю студента к определенной оболочке, ну и соответственно
прийдя на предприятие, для работы он должен будет ее купить.
С Delphi все намного проще, во первых Паскаль преподают еще со школы,
среду Delphi используют во многих предметах на младших курсах.
Мое дело научить работать в Delphi с библиотеками по автоматизации.
А про SCADA просто говорю, что есть такие, открываем,
смотрим Demo примеры ...
Студентам ВУЗов?
Простите, но если студента чему научили - только то и знает - это не инженер, а в лучшем случае техник.
Задача студента (в данном примере) научиться применению SCADA систем. А с какой он (инженер) там дальше встретится какая разница - обучится, вопрос максимум 2-х недель на обучение и нескольких недель на "вход". Иначе как специалист на рынке труда он ничего не стОит.
Когда я был молодым выпускником ВУЗа - рассуждал похоже, правда по другим причинам - тогда компы были слабенькими. Потом понял, почему в мире используют SCADA. А если прибавить сопровождение - то стандартный язык просто "отдыхает".
Приехали...
Во первых документация покупается только в ПЕЧАТНОМ виде. Или может учебники по делфи стали бесплатно раздавать?
Второе. С какого MasterScada стала закрытой? Лично написал несколько компонентов ФБ и ActiveX на C#. Документация есть, классы открыты, пиши - нехочу.
А с появлением модуля "Скрипт" можно теперь такие фокусы выкидывать...
А так не привязываете?
А насчет покупки. Скажите может подразделение корпорации Borland (Embarcadero) сменило лицензию Delphi на freeware?
Согласен - Enterprise стоит недешево - но взломанных "рабочих" версий хоть отбавляй - что не скажешь о СКАДАх.... Как не крути - а чтобы нормально ее попробовать необходимо ее купить... А чтобы купить - необходимо попробывать и правильно сформировать требования - замкнутый круг!Цитата:
А насчет покупки. Скажите может подразделение корпорации Borland (Embarcadero) сменило лицензию Delphi на freeware?
Кстати наша компания собирается приобрести Delphi - и все благодаря тому - что есть готовые программные решения которые приносят деньги! А как там будет со скадами - никто не знает.... Кроме Вас, конечно.
Не подскажете!? - я вот установил "на пробу" и пока не вижу особых удобств..... ведь как я понимаю с сервером будут работать только те элементы что входят в компонент..... или все-таки есть возможность подключения к серверу не используя сами элементы (как в dOPC)?Цитата:
для работы с OPC: Iocomp_Ultra_Pack_4.0.3 и для графиков (iPlot),
плохому детей учите. маргинальная среда разработки, нелицензионное по, использование не подходящих инструментов.
и никакая поделка на дельфи не сравнится с нормальной Scada. ни по одному параметру. даже по цене.