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

Тема: Использование библиотеки CAA.File для доступа к файлам через FTP и HTTP

  1. #1
    Пользователь Аватар для porada
    Регистрация
    18.10.2012
    Адрес
    Москва
    Сообщений
    6

    По умолчанию Использование библиотеки CAA.File для доступа к файлам через FTP и HTTP

    В хэлпе Codesys о библиотеке CAA.File написано, что CAA.FILENAME кроме обычных путей может быть указано и в виде:

    Complete path specification for a file on a FTP Server: ftp://<user>:<passwd>@<ip-addr>[:<port>]/home/user/Test.txt
    Complete path specification for a file on a HTTP Server: http://<ip-addr>[:<port>]/dir/Test.txt

    Я пробовал различные варианты с FTP, и читать и создавать, но FILE.Open всегда возвращает eError= NOT_EXIST (5104 insert lib standardized errors here). В отличие от прочих описанных в библиотеке стандартных для файловых систем ошибок, комментарий к этой я бы перевел как "Прочая_ошибка" (хотя среди ошибок есть и отдельная ERROR_UNKNOWN).

    Подозрительно так же, что среди зависимостей CAA.File нет сетевых библиотек. Есть только SysFile, но что-то слабо верится что FTP пути напрямую должны туда передаваться, тем более, что параметр szFile для SysFileOpen описан практически как в MS-DOS.

    Потому вопрос:
    Был ли у кого-нибудь положительный опыт с FTP\HTTP?
    Насколько можно верить тому что написано в хэлпе Codesys?
    Каким макаром можно прояснить вопрос у разработчиков системных библиотек (есть ли смысл обращаться через PК Пролог или они как всегда бесполезны в подобных вопросах?)

  2. #2

    По умолчанию

    Присоединяюсь к вопросу. Кто может подсказать листинг для открытия файла на ftp-сервере.

  3. #3
    Пользователь Аватар для porada
    Регистрация
    18.10.2012
    Адрес
    Москва
    Сообщений
    6

    По умолчанию

    Проблема до сих пор не решена. На сегодня для меня потеряла актуальность (до следующего раза).

    Что удалось прояснить: в зависимостях CAA.File нет библиотек связанных с Ethernet. Так что похоже FTP-возможности библиотеки описаны в ее доках "на вырост"

    Пока что самый перспективный вариант: FTP_CLIENT из библиотеки OSCAT_NETWORK 1.21

  4. #4

    По умолчанию

    Спасибо, понял. Буду курить ftp_client.

  5. #5
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    В СПК207 работал вариант с sysexec и ftpput.
    Правда я пробовал лишь выкладывать файл на FTP.

  6. #6
    Пользователь Аватар для porada
    Регистрация
    18.10.2012
    Адрес
    Москва
    Сообщений
    6

    По умолчанию

    Звучит заманчиво. Выкладывать файл на FTP - тоже хлеб.
    Но дальше непонятки: СПК207 на Codesys v3. Среди библиотек Codesys v3 не находится никакой SysExec. Есть только FUNCTION SysExecuteCommand из SysOS23. Предположим это она и есть. Документации там ноль, только:

    input: pszCommand:STRING; (* Command line to execute as system command *)
    output: SysExecuteCommandINT;

    Последний раз я имел дело с подобными функциями во времена 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 я не могу даже достучаться в командную строку, чтобы посмотреть какие команды есть.

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

    По умолчанию

    ну изучите команду nc, а винсе всегда подключалась через телнет без всяких проблем, может с ssh путаете
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  8. #8
    Пользователь Аватар для porada
    Регистрация
    18.10.2012
    Адрес
    Москва
    Сообщений
    6

    По умолчанию

    "Изучал" команду 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, выгрузка архива логов диагностики и т.п. фичи, реализованные в оболочке для этого ПЛК.

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

    По умолчанию

    да ни как она не заменит, просто вот так она работает
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  10. #10

    По умолчанию

    Привет всем, искал библиотеки для FTP Клиента. Нигде толком нет, OSCAT работает постольку поскольку, зарегался на том форуме, если есть у кого-то желание и интерес, могу скинуть написанный мной листинг программы простого FTP-логера, нужно его только причесать. А так работает. Программа дописывает в файл, если его нет, то создает и дописывает, данные-строчку. Если покопаться и найти команды загрузки, открытия и удаления и т.д. для FTP-сервера, можно остальное допилить. Правда куда и как это делается не в курсе, на форумах сижу очень редко. Библиотека CAA NetBaseServicies
    Последний раз редактировалось uncleson; 19.11.2021 в 09:12.

Похожие темы

  1. Ответов: 6
    Последнее сообщение: 10.10.2023, 10:59
  2. Помогите разобраться с CAA FILE
    от serg_s в разделе СПК2хх
    Ответов: 12
    Последнее сообщение: 16.01.2016, 10:04
  3. CAA.File.library: ошибка 5802
    от GoodLuck в разделе СПК2хх
    Ответов: 11
    Последнее сообщение: 07.12.2015, 06:43
  4. Опрос и запись в ТРМ201 через библиотеки
    от Papagun78 в разделе Эксплуатация
    Ответов: 11
    Последнее сообщение: 28.08.2015, 14:47
  5. помогите: использование библиотеки SysLibSockets.lib
    от незарегистрированный в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 26.11.2007, 22:19

Ваши права

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