PDA

Просмотр полной версии : Передача архива с ПЛК304



ISh
19.10.2011, 15:29
Добрый день. Возник такой вопрос:
Имеется проект в CoDeSys 2.3. ПЛК160 + компьютер связаны по Ethernet. Показания с датчиков ПЛК160 передает на OPC Lectus, дальше на компьютере софт складывает их в базу. Если связи с компьютером нет, то подается питание на архиватор МСД-100 и он кладёт данные в себя (33 показания).

Хотим перенести проект в ПЛК304 и, чтобы резервным хранилищем была флешка в контроллере.
Как реализовать передачу сохранённого архива, при возобновлении связи с компьютером? Чтобы софт на Делфи, не переставая получать текущие показания, утянул архив с целью дописать его в базу.



И заодно еще вопрос. Есть ли какие-нибудь ограничения на использование визуализации CoDeSys 3.4 с ПЛК304? Нужно ли покупать лицензии? Если да, то сколько это стоит?

Малышев Олег
20.10.2011, 11:58
Слить проект можно по ssh (утилитой pscp.exe)

Константинов Сергей
04.10.2012, 14:50
А можно как небудь автоматизировать данный процесс, т.е. нужно что бы архив с ПЛК автоматически без какой либо помощи человека выгружался на компьютер?

Малышев Олег
05.10.2012, 10:20
1) По визуализации - если вы собираетесь отдельно от кодесис использовать визуализацию (продукт CoDeSys HMI), то можно обратиться в Пролог (codesys.ru). Хотя, на мой взгляд это излишне, в кодесис на проекте можно выставить уровни доступа (открыв только визуализацию) и использовать среду разработки

2) Можно - любая утилита запуска по расписанию (стандартный планировщик Windows или xStarter) + pscp

Константинов Сергей
05.10.2012, 12:32
1) По визуализации - если вы собираетесь отдельно от кодесис использовать визуализацию (продукт CoDeSys HMI), то можно обратиться в Пролог (codesys.ru). Хотя, на мой взгляд это излишне, в кодесис на проекте можно выставить уровни доступа (открыв только визуализацию) и использовать среду разработки

2) Можно - любая утилита запуска по расписанию (стандартный планировщик Windows или xStarter) + pscp

1) То есть я правильно понял, что доступ к файлу архива созданного на ПЛК можно получить через визуализацию Codesys HMI или же через саму среду разработки?

2) Если использовать WinSCP для выгрузки архивного файла с ПЛК, то в ней я не видел функции автономной работы или вы имеете введу запуск программы планировщиков для открытия пути до архива для дальнейшего использования файла?

Малышев Олег
08.10.2012, 16:18
1) То есть я правильно понял, что доступ к файлу архива созданного на ПЛК можно получить через визуализацию Codesys HMI или же через саму среду разработки?

2) Если использовать WinSCP для выгрузки архивного файла с ПЛК, то в ней я не видел функции автономной работы или вы имеете введу запуск программы планировщиков для открытия пути до архива для дальнейшего использования файла?

1) То что я имел в виду -архив создается отдельно, графика отдельно. Если хочется их соединить нужно смотреть работу с историческими трендами в кодесис.
2) Не WinSCP а отдельную программу планировщик + pscp.exe с параметрами в коммандной строке

alex3000plus
09.10.2012, 16:23
Кстати WinSCP тоже неплохой вариант. Там должен быть exe файл и com. Так вот com замечательно запускается с параметрами, можно передать путь к файлу скрипта. Подробно это все написано на офсайте, вот на этой (http://winscp.net/eng/docs/scripting) страничке написано как скрипты писать.

Ельцов Андрей
09.10.2012, 23:52
Алекс, если Вы уже решили подобную задачу, можете поделиться опытом?

alex3000plus
10.10.2012, 12:02
Ок, в принципе я уже описал в двух словах, могу подробней.
На контроллере ведется архив, архиватор писал сам, в свое время столкнулся с этим вопросом, овен предлагает свое решение, но у меня там были какие-то проблемы, насколько я помню с вещественными числами, решено это сейчас или нет - не знаю. Пишу на карту, каждый день новая директория, название - текущая дата; внутри - каждый час файл, название - время.лог. Внутри строки определенного формата.
На делфи пишу приложение. Каждый час формируется файл скрипта, примерно такого вида:

option batch on
option confirm off
open scp://root:12345@192.168.84.6
cd /mnt/mmc/PLC5_20121010/
option transfer binary
get 0900.log D:\PLCArchives\PLC5\PLC5_20121010\
close
exit
Понятно, что даты и время вычисляются. Кому интересно что это значит на сайт winscp это описано. Далее запускаю winscp примерно так:

WinSCPPath:=WorkingDir+'WinSCP\winscp.com';
WinSCPCMD:='/console /script='+WorkingDir+'script.txt';
Rslt:=CreateProcess(PAnsiChar(WinSCPPath),
PAnsiChar(WinSCPCMD),
nil,
nil,
false,
NORMAL_PRIORITY_CLASS,
nil,
nil,
StartUpInfo,
ProcessInfo);
Далее проверяю существование файла. На самом деле можно получать код с которым завершилось приложение (winscp.com), но у меня всегда возвращался отрицательный результат, как я понял это связано с тем, что не поддерживается команда groups. Далее разбираю файл и делаю что мне нужно. Еще стоит заметить, что при таком способе перед автоматизацией этого процесса один раз ручками подключаюсь к контроллеру, чтобы они обменялись ключами или как-то так. После это все норм работает. Все, кажется подробно:)

Ельцов Андрей
15.10.2012, 23:17
Отлично!
Огромное спасибо.
Уверен, Ваш опыт многим пригодится. И нам уж точно:)