Показано с 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
    Адрес
    Воронеж
    Сообщений
    884

    По умолчанию

    В СПК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
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    ну изучите команду nc, а винсе всегда подключалась через телнет без всяких проблем, может с ssh путаете

  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
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    да ни как она не заменит, просто вот так она работает

  10. #10

    По умолчанию

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

Похожие темы

  1. Где лежит описание библиотеки CAA DTUtil Extern
    от дрю в разделе СПК2xx (архив)
    Ответов: 6
    Последнее сообщение: 10.10.2023, 10:59
  2. Помогите разобраться с CAA FILE
    от serg_s в разделе СПК2xx (архив)
    Ответов: 12
    Последнее сообщение: 16.01.2016, 10:04
  3. CAA.File.library: ошибка 5802
    от GoodLuck в разделе СПК2xx (архив)
    Ответов: 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

Ваши права

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