Ок, в принципе я уже описал в двух словах, могу подробней.
На контроллере ведется архив, архиватор писал сам, в свое время столкнулся с этим вопросом, овен предлагает свое решение, но у меня там были какие-то проблемы, насколько я помню с вещественными числами, решено это сейчас или нет - не знаю. Пишу на карту, каждый день новая директория, название - текущая дата; внутри - каждый час файл, название - время.лог. Внутри строки определенного формата.
На делфи пишу приложение. Каждый час формируется файл скрипта, примерно такого вида:
Понятно, что даты и время вычисляются. Кому интересно что это значит на сайт winscp это описано. Далее запускаю winscp примерно так:Код: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.com), но у меня всегда возвращался отрицательный результат, как я понял это связано с тем, что не поддерживается команда groups. Далее разбираю файл и делаю что мне нужно. Еще стоит заметить, что при таком способе перед автоматизацией этого процесса один раз ручками подключаюсь к контроллеру, чтобы они обменялись ключами или как-то так. После это все норм работает. Все, кажется подробноКод: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);![]()




Ответить с цитированием