Звучит заманчиво. Выкладывать файл на FTP - тоже хлеб.
Но дальше непонятки: СПК207 на Codesys v3. Среди библиотек Codesys v3 не находится никакой SysExec. Есть только FUNCTION SysExecuteCommand из SysOS23. Предположим это она и есть. Документации там ноль, только:
input: pszCommand:STRING; (* Command line to execute as system command *)
output: SysExecuteCommand:DINT;
Последний раз я имел дело с подобными функциями во времена GW-Basic. Аргументы хоть как должны разделяться? пробелами? имена-пути в кавычках или нет? Возвращается только DINT, даже не понятно это ошибка OS, ошибка FTP или только 0\1=success\unsuccesses как в GW-Basic.
Дальше еще мрачнее: у меня есть ПЛК на Linux-RT и другой на WinCE6.0 Embed.
В Linux-RT хоть можно зайти telnet и убедиться что ftpput отсутствует. Шелл там сделан на BusyBox:
-----
BusyBox v1.18.3 (2014-03-21 15:23:32 CET) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: busybox --list[-full]
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, acpid, ar, arp, arping, ash, base64, basename, bbconfig, beep,
blockdev, bootchartd, bunzip2, bzcat, bzip2, cat, chgrp, chmod, chown,
chrt, cksum, clear, cmp, cp, cpio, cut, date, dc, dd, depmod, devmem,
df, dhcprelay, diff, dirname, dmesg, dnsdomainname, du, dumpleases,
echo, egrep, env, expr, fgconsole, fgrep, find, flock, free, fsync,
fuser, getopt, getty, grep, gunzip, gzip, halt, hd, head, hexdump,
hostname, httpd, hwclock, id, ifconfig, ifplugd, init, insmod, ionice,
iostat, ipcrm, ipcs, kill, killall, klogd, last, length, less, linuxrc,
ln, logger, login, losetup, ls, lsattr, lsmod, lspci, lsusb, lzop,
lzopcat, md5sum, mdev, mesg, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2,
mkfs.vfat, mknod, modinfo, modprobe, more, mount, mpstat, mv,
nbd-client, nc, netstat, nice, nohup, nslookup, ping, pmap, poweroff,
powertop, printf, ps, pwd, rdate, rdev, reboot, renice, reset, rev, rm,
rmdir, rmmod, route, scriptreplay, sed, seq, sh, sha256sum, sha512sum,
sleep, smemcap, sort, stat, strings, stty, su, sync, sysctl, syslogd,
tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd,
time, timeout, top, touch, tr, traceroute, tunctl, udhcpc, udhcpd,
udpsvd, umount, uname, uncompress, unexpand, unlzop, unxz, uptime,
usleep, vi, volname, wall, watch, watchdog, wc, wget, which, who,
whoami, xargs, xz, xzcat, yes, zcat
---------
Usage: tftp [OPTIONS] HOST [PORT] Transfer a file from/to tftp server
------
tftpd - соотв.: демон, обслуживающий TFPD запросы
tftp насколько я понимаю - это не одно и тоже что FTP-протокол, как минимум не запрашиваются пароли, потому сомневаюсь, что он сможет подключиться к FTP-серверу.
Есть еще отдельно vsftpd, но это не клиент, а сервер, не думаю что его можно использовать в роли ftpput.
В WinCE я не могу даже достучаться в командную строку, чтобы посмотреть какие команды есть.
"Изучал" команду nc, получил:
Usage: nc [-iN] [-wN] [-l] [-p PORT] [-f FILE|IPADDR PORT] [-e PROG]
Open a pipe to IP:PORT or FILE
-e PROG Run PROG after connect
-l Listen mode, for inbound connects (use -l twice with -e for persistent server)
-p PORT Local port
-w SEC Timeout for connect
-i SEC Delay interval for lines sent
-f FILE Use file (ala /dev/ttyS0) instead of network
И что-то не пойму как она может заменить отсутствующий FTP-клиент. "Дяденька, я не настоящий юниксоид, я эту штуку в песочнице нашел !"
Если это реально, прошу объяснить мысль поподробнее.
Эмулировать через nc + SysExecuteCommand одну за одной FTP-команды, причем не видя, что FTP-сервер отвечает -- не предлагать, ибо чистейший мазохизм.
А в другом ПЛК, что на WinCE просканировал все порты. Нашлись: 80:web-server, 21:FTP, 1217:Codesys и еще непонятно что на 2100, при соединении туда telnet выдает:
220 XHMI Remote Configurator: READY.
530 Please login with USER and PASS.
последняя строка похоже на приглашение FTP, но по FTP с логином\паролем от сессии ftp:21 не соединяется на этот порт, продолжает отвечать "530 Please login with USER and PASS".
Putty по SSH после соединения на этот порт показывает пустой экран и не на что не реагирует. Похоже это какой-то спец. сервис от производителя: заливка firmware, выгрузка архива логов диагностики и т.п. фичи, реализованные в оболочке для этого ПЛК.
uncleson
19.11.2021, 09:09
Привет всем, искал библиотеки для FTP Клиента. Нигде толком нет, OSCAT работает постольку поскольку, зарегался на том форуме, если есть у кого-то желание и интерес, могу скинуть написанный мной листинг программы простого FTP-логера, нужно его только причесать. А так работает. Программа дописывает в файл, если его нет, то создает и дописывает, данные-строчку. Если покопаться и найти команды загрузки, открытия и удаления и т.д. для FTP-сервера, можно остальное допилить. Правда куда и как это делается не в курсе, на форумах сижу очень редко. Библиотека CAA NetBaseServicies
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot