Показано с 1 по 8 из 8

Тема: С чего начать попытку соединить OPC Сервер и программу на C#?

  1. #1

    По умолчанию С чего начать попытку соединить OPC Сервер и программу на C#?

    Добрый день.
    Ситуация такая: есть работающий пресс (управляется oven plk 150U). Контроллер запрограммирован, исходник программы есть. Очень грубо говоря, в самом контроллере обрабатывается ход вверх, ход вниз и стоп. Есть пульт оператора с соответствующими кнопками.
    Далее, есть программа на ПК (без исходников) в которой реализована визуализация тех.процесса и возможность задания последовательности действий, входных и аварийных условий, и т.д.

    Контроллер к ПК подключен по Tcp/Ip (Level2), IP контроллера: 192.168.0.50, порт: 1200.
    Скриншот конфигуратора: https://yadi.sk/i/unVsXLD23KMvD7
    Версия: https://yadi.sk/i/FHzM0q9w3KMvF9
    Испольщуемый CoDeSysOPC.ini: https://yadi.sk/i/3R0A0ZZP3KMvJ7

    При запуске программы на ПК на нём же "стартует" OPC сервер, программа связывается с контроллером и работает.
    Важно: на текущий момент времени ВСЁ работает! Бекапы сделаны.

    Далее: программа на ПК не удовлетворяет текущим требованиям (устарел алгоритм работы). Стоит задача - написать свою программу, которая будет подключаться к контроллеру и работать по "новым" алгоритмам.

    А теперь проблемы:
    1) Не нашел описания как вообще правильно подключаться к OPC и работать по выбранному способу связи (Tcp/Ip Level2). Встречаю много примеров для работы по MobBus и через COM-порт, но вроде бы у меня не тот случай?
    В найденных же мной примерах люди используют owen_io.dll, однако на текущий момент времени эта библиотека не доступна для скачивания с этого сайта. Причин не знаю, возможно этот подход устарел, или библиотека стала коммерческой - не знаю, но раз убрали файл, значит этим путём лучше не ходить... вопрос: а каким тогда "ходить"?

    2) (скорее - ограничение) Сам пресс находится в достаточно удаленном месте, кататься туда/сюда пробуя и проверяя результаты каждый день не получается, поэтому хотелось бы получить максимально похожую на правду заготовку, с которой уже пытаться на месте соединиться/опросить plk.

    Уважаемые знатоки, приведите пожалуйста в пример 5-10 рабочих(!) строк на C#, при помощи которых можно создать соединение с OPC-сервером!!

    Теоретически есть еще вариант соединения непосредственно через socket'ы:
    Код:
    TcpClient clientSocket = new TcpClient();
    try{
    	clientSocket.Connect("192.168.0.50", 1200);
    }catch{
    	MessageBox.Show("Нет соединения с plk!");
    }
    if (clientSocket.Connected){
    	MessageBox.Show("Connected!");
    }
    Завтра попаду на место - проверю, но даже если такой метод сработает - не понятно как потом быть с этим соединением: откуда что читать, куда что писать?!

    Поделитесь информацией, пожалуйста!

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Вам, в одном из вариантов нужен клиент ОРС, чтоб подключиться к localhost ОРС-серверу КДС, ни по какому АйПи адресу контроллера стучаться не надо, если конечно не умеете писать свой сервер, только тут явно не в пять строчек обойдется
    Лучший вариант для Вас в плк "набить" нужную конфигурацию модбасТСР и под неё то в инете полно примеров работы на любых языках
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вам, в одном из вариантов нужен клиент ОРС, чтоб подключиться к localhost ОРС-серверу КДС, ни по какому АйПи адресу контроллера стучаться не надо, если конечно не умеете писать свой сервер, только тут явно не в пять строчек обойдется
    Лучший вариант для Вас в плк "набить" нужную конфигурацию модбасТСР и под неё то в инете полно примеров работы на любых языках
    Тут такое дело: программа в plk сейчас настроена и работает с программой на ПК. Если я внесу изменения в программу на plk, или в его конфигурацию - "старая" программа перестанет работать, а новой у меня пока что совсем нет, что есть плохо.

    Старая программа не удовлетворяет текущим задачам, но не по всем пунктам, кое-что из неё выжать таки получается, поэтому "рушить" взаимосвязь контроллера с имеющейся программой до того, как я полностью напишу свою рабочую замену - очень и очень не хотелось бы!

    Судя по тому, что я читаю - да, мне действительно нужен пример OPC клиента, соединяющегося с овновским OPC-сервером!
    Пока что всё, найденное мной по этой теме, упирается в не существующую owen_io.dll.

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    с каким овеновским, Вы же сами скрин кидаете на CoDeSysOPC, порт ethernet 1200, это связь самой КДС с контроллерами, поддерживающими её. Овеновский проткол обмена предназначен только для соединения через последовательные порты, порт модбас это 502

    Цитата Сообщение от nk_lg Посмотреть сообщение
    Тут такое дело: программа в plk сейчас настроена и работает с программой на ПК. Если я внесу изменения в программу на plk, или в его конфигурацию - "старая" программа перестанет работать, а новой у меня пока что совсем нет, что есть плохо.
    Вот зачем Вы беретесь за это дело если в нем вообще ни чего не понимаете, начните с изучения этих документов http://www.owen.ru/catalog/codesys_v2/51162335
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    а вот показали бы программу на ПК, а то может там просто визуализация CodeSys с кнопками и прочим ?

  6. #6

    По умолчанию

    Прошу прощения, пропал немного, дальше по пунктам:
    Цитата Сообщение от capzap Посмотреть сообщение
    с каким овеновским, Вы же сами скрин кидаете на CoDeSysOPC, порт ethernet 1200, это связь самой КДС с контроллерами, поддерживающими её. Овеновский проткол обмена предназначен только для соединения через последовательные порты, порт модбас это 502
    Плюс вот это:
    Цитата Сообщение от capzap Посмотреть сообщение
    Вам, в одном из вариантов нужен клиент ОРС, чтоб подключиться к localhost ОРС-серверу КДС, ни по какому АйПи адресу контроллера стучаться не надо
    - Огромнейшее спасибо!!! ))
    Действительно - в голове была совсем каша, так как не сталкивался ранее ни с контроллерами, не с COM-объектами. Почему-то решил, что раз "клиент-сервер", то сокеты и "всё как обычно", ан - нет! )))
    Присмотрелся повнимательнее, ознакомился с соответствующей литературой - появилось больше понимания происходящего. Всем, кто как и я "с нуля" будут пытаться нащупать "дно" и разобраться что же такое OPC-сервер и что есть клиент для него, мне очень помогла методичка от Федоренко Д.Ю.

    Цитата Сообщение от capzap Посмотреть сообщение
    Вот зачем Вы беретесь за это дело если в нем вообще ни чего не понимаете
    - Как бы сказать по мягче: денег нет, но мы держимся... что правда - держаться сил всё меньше, но мы пока еще стараемся. Если по сути: доработка старой программы нужна скорее нам "лично". Сейчас тупо вручную управляем циклами прессования (ловим "начало", чуть ли не с линейкой замеряем "глубину сжатия", по полученным данным - рисуем графики). Это утомляет и отвлекает от другой повседневной. Захотелось "облегчить" работу и попытаться автоматизировать, тем более, что на первый взгляд - тут "всё просто".

    Цитата Сообщение от melky Посмотреть сообщение
    а вот показали бы программу на ПК, а то может там просто визуализация CodeSys с кнопками и прочим ?
    - Могу кинуть Вам в личку скрины и архив с программой. Она запускается на "любом" виндовом компьютере без установки скады или кодесиса, запускаемый файл имеет расширение ".exe". Весит вся папка с программой чуть больше 10ти метров.

    Тут, по моему, кто-то предлагал взяться и написать нужную программу за "адекватные деньги" (сейчас не вижу этого комментария)? Я пока что с одной стороны - не уверен в своих силах, что смогу дотянуть этот проект до реально требуемого функционала, с другой стороны - совершенно не ориентируюсь, сколько может составлять для такой программы "адекватная цена"?
    Если кто-то возьмется "оценить" - постучитесь, пожалуйста, мне на почту: nk.pochta@gmail.com, я скину архив с имеющейся программой и напишу, что именно в ней не устраивает и "как надо". Спасибо и sorry, если такой просьбой нарушил какие-то внутренние правила этого форума! ))

    PS. Еще раз огромнейшее спасибо to capzap за наставление на путь истинный! Я еще очень долго пытался бы разобраться с "сетевым протоколом" и "достучаться" до данных, тем более что мой же пример из первого сообщения оказался "рабочим", и "соединение напрямую" - устанавливается без проблем!! )))))

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    если Вам требуется заменить старую, не поддерживаемую программу, то все исходные данные нужно брать с ОРС сервера, конфиг его Вы вроде выкладывали и на основе этих данных писать свою программу, в плк для этого лезть не нужно
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #8

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    если Вам требуется заменить старую, не поддерживаемую программу, то все исходные данные нужно брать с ОРС сервера, конфиг его Вы вроде выкладывали и на основе этих данных писать свою программу, в плк для этого лезть не нужно
    - Да, спасибо, это я уже понял! Даже примерно понял где/как/что (тут уже спасибо методичке - там с почти рабочим примером, который немного правится и становится вообще рабочим).
    Немного смущают только темпы, с которыми я продвигаюсь в решении этого вопроса... хотя - всё относительно! ))

Похожие темы

  1. С чего начать?
    от Lockie в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 12.10.2012, 11:08
  2. Ответов: 6
    Последнее сообщение: 25.02.2010, 20:35
  3. С чего начать
    от Рыбников Сергей в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 03.04.2009, 13:52
  4. С чего начать
    от kuguar в разделе Подбор Оборудования
    Ответов: 2
    Последнее сообщение: 27.10.2008, 09:44

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •