Добрый день.
Ситуация такая: есть работающий пресс (управляется 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!");
}
Завтра попаду на место - проверю, но даже если такой метод сработает - не понятно как потом быть с этим соединением: откуда что читать, куда что писать?!

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