Jump to content
Форум по продукции MOXA

oiv_1968

Пользователи
  • Posts

    163
  • Joined

  • Last visited

Everything posted by oiv_1968

  1. А какая возможность выложить? У меня такой маленький доступный размер! Или это возможно если в новой теме?
  2. А это консольный браузер elinks (зашли по ssh на устройство, а в нём ходим по сайтам) Вот: Не имеем выход через прокси... А proxychains4 elinks 2>/dev/null зачем? тут все пути URL с прокси и указываем. Вот GOOGLE: https://yadi.sk/d/l53H3_9u19qSjg
  3. Зато только что elinks собрал и испытал. Конечно криво собрал... пока криво. Но выводит таблички и т.п. Пока убрал ssl, иначе не собирается пока. Вечером openssl буду проверять, собрал вот дома. Может прикрутится.
  4. Доброго времени суток! вот про lynx: Making HTTP connection to 192.168.0.234 Sending HTTP request. HTTP request sent; waiting for response. HTTP/1.1 200 OK Data transfer complete /bin/gzip -d --no-name /tmp/lynxXXXXGPoHpw/L541-7561TMP.html.gz Alert!: Error uncompressing temporary file! lynx: Start file could not be found or is not text/html or text/plain Exiting... www-data@Moxa:~$ ругается на gzip. Смотрим: www-data@Moxa:~$ gzip --help BusyBox v1.13.3 (2009-06-04 09:41:31 CST) multi-call binary Usage: gzip [OPTION]... [FILE]... Compress FILEs (or standard input) Options: -c Write to standard output -d Decompress -f Force www-data@Moxa:~$ а он gzip и не умеет --no-name. Ну соответственно и выскакивет по ошибке. Кстати w3m посмотрел на debian - он в самый раз но вот при сборке требует GC Library. Как его выключить если вообще возможно?
  5. Простите за назойливость, но вот: Это консольный браузер lynx. Прямо запущен по ssh в устройстве. Возможно будет удобен в ряде случаев. Но вот честно сказать, только собрал и как надо не испытал. В данном случае из одного устройства IA240 зашли в UC7112LX-Plus Этот архив: lynx.zip распаковать в устройство, произвести запуск install.sh в root. В директорию /usr/bin будет скопирован lynx а в директорию /usr/local/etc файлы конфигурации. Программа сразу будет в консоли, как команда: www-data@Moxa:~$ lynx --help USAGE: lynx [options] [file] Options are: - receive options and arguments from stdin -accept_all_cookies accept cookies without prompting if Set-Cookie handling is on (off) -anonymous apply restrictions for anonymous account, see also -restrictions -assume_charset=MIMEname charset for documents that don't specify it -assume_local_charset=MIMEname charset assumed for local files -assume_unrec_charset=MIMEname use this instead of unrecognized charsets -auth=id:pw authentication information for protected documents -base prepend a request URL comment and BASE tag to text/html outputs for -source dumps -bibhost=URL local bibp server (default http://bibhost/) -book use the bookmark page as the startfile (off) -buried_news toggles scanning of news articles for buried references (on) -cache=NUMBER NUMBER of documents cached in memory -case enable case sensitive user searching (off) -center toggle center alignment in HTML TABLE (off) -cfg=FILENAME specifies a lynx.cfg file other than the default -child exit on left-arrow in startfile, and disable save to disk -child_relaxed exit on left-arrow in startfile (allows save to disk) -cmd_log=FILENAME log keystroke commands to the given file -cmd_script=FILENAME read keystroke commands from the given file (see -cmd_log) -connect_timeout=N set the N-second connection timeout (18000) -cookie_file=FILENAME specifies a file to use to read cookies -cookie_save_file=FILENAME specifies a file to use to store cookies -cookies toggles handling of Set-Cookie headers (on) -core toggles forced core dumps on fatal errors (off) -crawl with -traversal, output each page to a file with -dump, format output as with -traversal, but to stdout -curses_pads uses curses pad feature to support left/right shifting (on) -debug_partial incremental display stages with MessageSecs delay (off) -delay=NNN set NNN-second delay at statusline message (0.000) -display=DISPLAY set the display variable for X exec'ed programs -display_charset=MIMEname charset for the terminal output -dont_wrap_pre inhibit wrapping of text in <pre> when -dump'ing and -crawl'ing, mark wrapped lines in interactive session (off) -dump dump the first file to stdout and exit -editor=EDITOR enable edit mode with specified editor -emacskeys enable emacs-like key movement (off) -enable_scrollback toggles compatibility with comm programs' scrollback keys (may be incompatible with some curses packages) (off) -error_file=FILE write the HTTP status code here -force_empty_hrefless_a force HREF-less 'A' elements to be empty (close them as soon as they are seen) (off) -force_html forces the first document to be interpreted as HTML (off) -force_secure toggles forcing of the secure flag for SSL cookies (off) -forms_options toggles forms-based vs old-style options menu (on) -from toggle transmission of From headers (on) -ftp disable ftp access (off) -get_data user data for get forms, read from stdin, terminated by '---' on a line -head send a HEAD request (off) -help print this usage message -hiddenlinks=[option] hidden links: options are merge, listonly, or ignore -historical toggles use of '>' or '-->' as terminator for comments (off) -homepage=URL set homepage separate from start page -html5_charsets toggles use of HTML5 charset replacements (off) -image_links toggles inclusion of links for all images (off) -index=URL set the default index file to URL -ismap toggles inclusion of ISMAP links when client-side MAPs are present (off) -justify do justification of text (off) -link=NUMBER starting count for lnk#.dat files produced by -crawl (0) -list_inline with -dump, forces it to show links inline with text (off) -listonly with -dump, forces it to show only the list of links (off) -localhost disable URLs that point to remote hosts (off) -lss=FILENAME specifies a lynx.lss file other than the default -mime_header include mime headers and force source dump -minimal toggles minimal versus valid comment parsing (on) -newschunksize=NUMBER number of articles in chunked news listings -newsmaxchunk=NUMBER maximum news articles in listings before chunking -nobold disable bold video-attribute -nobrowse disable directory browsing -nocc disable Cc: prompts for self copies of mailings (off) -nocolor turn off color support -nofilereferer disable transmission of Referer headers for file URLs (on) -nolist disable the link list feature in dumps (off) -nolog disable mailing of error messages to document owners (on) -nomargins disable the right/left margins in the default style-sheet (off) -nomore disable -more- string in statusline messages -nonrestarting_sigwinch make window size change handler non-restarting (off) -nonumbers disable the link/form numbering feature in dumps (off) -nopause disable forced pauses for statusline messages -noprint disable some print functions, like -restrictions=print (off) -noredir don't follow Location: redirection (off) -noreferer disable transmission of Referer headers (off) -noreverse disable reverse video-attribute -nostatus disable the miscellaneous information messages (off) -notitle disable the title at the top of each page (off) -nounderline disable underline video-attribute -number_fields force numbering of links as well as form input fields (off) -number_links force numbering of links (off) -output_filename_mode with -crawl and -traversal, how to name the file: 0 default 1 use page title (0) -partial toggles display partial pages while downloading (on) -partial_thres [=NUMBER] number of lines to render before repainting display with partial-display logic (-1) -passive-ftp toggles passive ftp connection (on) -pauth=id:pw authentication information for protected proxy server -popup toggles handling of single-choice SELECT options via popup windows or as lists of radio buttons (off) -post_data user data for post forms, read from stdin, terminated by '---' on a line -preparsed show parsed text/html with -source and in source view to visualize how lynx behaves with invalid HTML (off) -prettysrc do syntax highlighting and hyperlink handling in source view (off) -print enable print functions (DEFAULT), opposite of -noprint (on) -pseudo_inlines toggles pseudo-ALTs for inlines with no ALT string (on) -raw toggles default setting of 8-bit character translations or CJK mode for the startup character set (off) -realm restricts access to URLs in the starting realm (off) -read_timeout=N set the N-second read-timeout (18000) -reload flushes the cache on a proxy server (only the first document affected) (off) -restrictions=[options] use -restrictions to see list -resubmit_posts toggles forced resubmissions (no-cache) of forms with method POST when the documents they returned are sought with the PREV_DOC command or from the History List (off) -rlogin disable rlogins (off) -scrollbar toggles showing scrollbar (off) -scrollbar_arrow toggles showing arrows at ends of the scrollbar (on) -selective require .www_browsable files to browse directories -session=FILENAME resumes from specified file on startup and saves session to that file on exit -sessionin=FILENAME resumes session from specified file -sessionout=FILENAME saves session to specified file -short_url enables examination of beginning and end of long URL in status line (off) -show_cfg Show `LYNX.CFG' setting (off) -show_cursor toggles hiding of the cursor in the lower right corner (on) -show_rate toggles display of transfer rate (on) -soft_dquotes toggles emulation of the old Netscape and Mosaic bug which treated '>' as a co-terminator for double-quotes and tags (off) -source dump the source of the first file to stdout and exit -stack_dump disable SIGINT cleanup handler (off) -startfile_ok allow non-http startfile and homepage with -validate (off) -stderr write warning messages to standard error when -dump or -source is used (off) -stdin read startfile from standard input (off) -tagsoup use TagSoup rather than SortaSGML parser (off) -telnet disable telnets (off) -term=TERM set terminal type to TERM -tlog toggles use of a Lynx Trace Log for the current session (on) -tna turn on "Textfields Need Activation" mode (off) -trace turns on Lynx trace mode (off) -trace_mask customize Lynx trace mode (0) -traversal traverse all http links derived from startfile -trim_input_fields trim input text/textarea fields in forms (off) -underline_links toggles use of underline/bold attribute for links (off) -underscore toggles use of _underline_ format in dumps (off) -unique_urls toggles use of unique-urls setting for -dump and -listonly options (off) -use_mouse turn on mouse support (off) -useragent=Name set alternate Lynx User-Agent header -validate accept only http URLs (meant for validation) implies more restrictions than -anonymous, but goto is allowed for http and https (off) -verbose toggles [LINK], [IMAGE] and [INLINE] comments with filenames of these images (on) -version print Lynx version information -vikeys enable vi-like key movement (off) -width=NUMBER screen width for formatting of dumps (default is 80) -with_backspaces emit backspaces in output if -dumping or -crawling (like 'man' does) (off) -xhtml-parsing enable XHTML 1.0 parsing (off) www-data@Moxa:~$ Браузер работает, но при обращении к большому содержимому затык. Сбрасывает какое-то содержимое в /tmp похоже надо что-то в настройках менять.
  6. Так же готов и комплект ncursers-ng, в котором и lib + include для Си проектов, примеры применения на Си и элементы infocmp ncurses tic toe tput tset Которые можно применить и в BASH скриптах. https://yadi.sk/d/exxyLTUgKewiog
  7. Доброго времени суток! Интерфейс через браузер, если не надо графики тяжеловат А вот консольный интерфейс вроде ничего: Таким образом можно стало делать некий интерфейс в консоли... простой интерфейс в BASH. с появлением после инсталяции компонента dialog: www-data@Moxa:~$ dialog cdialog (ComeOn Dialog!) version 1.3-20190211 Copyright 2000-2017,2018 Thomas E. Dickey This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * Display dialog boxes from shell scripts * Usage: dialog <options> { --and-widget <options> } where options are "common" options, followed by "box" options Special options: [--create-rc "file"] Common options: [--ascii-lines] [--aspect <ratio>] [--backtitle <backtitle>] [--beep] [--beep-after] [--begin <y> <x>] [--cancel-label <str>] [--clear] [--colors] [--column-separator <str>] [--cr-wrap] [--date-format <str>] [--default-button <str>] [--default-item <str>] [--defaultno] [--exit-label <str>] [--extra-button] [--extra-label <str>] [--help-button] [--help-label <str>] [--help-status] [--help-tags] [--hfile <str>] [--hline <str>] [--ignore] [--input-fd <fd>] [--insecure] [--item-help] [--keep-tite] [--keep-window] [--last-key] [--max-input <n>] [--no-cancel] [--no-collapse] [--no-cr-wrap] [--no-items] [--no-kill] [--no-label <str>] [--no-lines] [--no-mouse] [--no-nl-expand] [--no-ok] [--no-shadow] [--no-tags] [--nook] [--ok-label <str>] [--output-fd <fd>] [--output-separator <str>] [--print-maxsize] [--print-size] [--print-text-only <text> <height> <width>] [--print-text-size <text> <height> <width>] [--print-version] [--quoted] [--reorder] [--scrollbar] [--separate-output] [--separate-widget <str>] [--shadow] [--single-quoted] [--size-err] [--sleep <secs>] [--stderr] [--stdout] [--tab-correct] [--tab-len <n>] [--time-format <str>] [--timeout <secs>] [--title <title>] [--trace <file>] [--trim] [--version] [--visit-items] [--week-start <str>] [--yes-label <str>] Box options: --buildlist <text> <height> <width> <list-height> <tag1> <item1> <status1>... --calendar <text> <height> <width> <day> <month> <year> --checklist <text> <height> <width> <list height> <tag1> <item1> <status1>... --dselect <directory> <height> <width> --editbox <file> <height> <width> --form <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>... --fselect <filepath> <height> <width> --gauge <text> <height> <width> [<percent>] --infobox <text> <height> <width> --inputbox <text> <height> <width> [<init>] --inputmenu <text> <height> <width> <menu height> <tag1> <item1>... --menu <text> <height> <width> <menu height> <tag1> <item1>... --mixedform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1> <itype>... --mixedgauge <text> <height> <width> <percent> <tag1> <item1>... --msgbox <text> <height> <width> --passwordbox <text> <height> <width> [<init>] --passwordform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>... --pause <text> <height> <width> <seconds> --prgbox <text> <command> <height> <width> --programbox <text> <height> <width> --progressbox <text> <height> <width> --radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>... --rangebox <text> <height> <width> <min-value> <max-value> <default-value> --tailbox <file> <height> <width> --tailboxbg <file> <height> <width> --textbox <file> <height> <width> --timebox <text> <height> <width> <hour> <minute> <second> --treeview <text> <height> <width> <list-height> <tag1> <item1> <status1> <depth1>... --yesno <text> <height> <width> Auto-size with height and width = 0. Maximize with height and width = -1. Global-auto-size if also menu_height/list_height = 0. www-data@Moxa:~$ Распаковать dialog.zip в устройство, с правами root запустить install.sh. В директорию /usr будет помещён каталог terminfo и в /usr/bin помещён файл dialog. После этого в консоли будет доступен собственно dialog (d + TAB): www-data@Moxa:~$ d date delgroup depmod dhcpcd dirname discard do downramdisk declare deluser df dialog dirs dmesg done du www-data@Moxa:~$ А в директории samples будут запускаемые примеры применения этой утилиты.
  8. Доброго времени суток! Прошу прощения за беспокойство! Вот proxychains-ng... точнее установка (в сессии root): proxychains-ng.zip Надо только распаковать на устройство, и запустить install.sh: root@Moxa:/home/httpd/ramdisk/inst/proxychains-ng# ./install.sh --- proxychains-ng ----- setup to MOXA IA240LX, IA241LX, UC7112LX-Plus... ...copy proxychains4 to /usr/bin ...copy proxychains4.so to /usr/lib ...copy proxychains.conf to /etc --- end --- root@Moxa:/home/httpd/ramdisk/inst/proxychains-ng# В директории /etc будет файл proxychains.conf в конце файла ... ... ... # ProxyList format # type ip port [user pass] # (values separated by 'tab' or 'blank') # # only numeric ipv4 addresses are valid # # # Examples: # # socks5 192.168.67.78 1080 lamer secret # http 192.168.89.3 8080 justu hidden # socks4 192.168.1.49 1080 # http 192.168.39.93 8080 # # # proxy types: http, socks4, socks5 # ( auth types supported: "basic"-http "user/pass"-socks ) # [ProxyList] # add proxy here ... # meanwile # maintest: # http 192.168.0.234 8080 www-data www-data В конце указать список прокси по порядку указав протокол и пользователя с паролем если таковые есть. Если нет, то заполнять не надо. Там в примере всё показано.
  9. А зачем? А много где. Вот к примеру связать /dev/ttyMO на устройстве и сокет socat tcp-listen:1234,fork /dev/ttyM0 Сам подсмотрел конечно. Но тут всё что придёт на сокет (порт 1234) уйдёт в порт /dev/ttyM0 и уйдёт обратно. И запустил на устройстве Для примера запустил на PC telnet 192.168.0.240 1234 Trying 192.168.0.240... Connected to 192.168.0.240. Escape character is '^]'. 1234 1234 1234 ;lkj;lkj;j ;lkj;lkj;lkj;lkj При нажатии "enter" набранная стока уходит в порт устройства и мигает "TX" и если pin2 и pin3 для этого замкнуть то и "RX" и эхо вернётся обратно в PC. Аналогично испытал монитор "Modbus Pol" монитор Modbus. Всё работает. Но для этого порт устройстве перевести в режим RS485. Вот так: root@Moxa:~# chmod 777 /dev/ttyM0 root@Moxa:~# setinterface Usage: setinterface device-node [interface-no] device-node - /dev/ttyM0 ~ /dev/ttyM3 interface-no - following: none - to view now setting 0 - set to RS232 interface 1 - set to RS485-2WIRES interface 2 - set to RS422 interface 3 - set to RS485-4WIRES interface root@Moxa:~# setinterface /dev/ttyM0 1 root@Moxa:~# Тут сначала дали разрешение на последовательный порт для всех, посмотрели подсказку на изменение режима и изменили режим работы на RS485. Скорость и другие параметры порта я не трогал. Для работы с устройствами Modbus по сети через UC7112LX-Plus. Установив socat на устройство спокойно производится проброс последовательного "соединения" по локальной сети. Можно применять и локальные программы на PC для работы с удалённым устройством через моха. Удобно для отработки с неизвестным устройством. Надо посмотреть может и конфигурация прокатит ну например для ОВЕН устройств ввода-вывода... и не надо их демонтировать для изменения настроек, которые вдруг приходится менять. А ранее было такое вдруг стало надо перейти с 9600 на 115200 после того как был установлен повторитель интерфейса на длинной линии. И приходилось их каждай снимать и конфигуратором(программой) изменять. Было не очень весело. А тут можно и штатный контроллер применять без демонтажа. А штатный это IA240LX
  10. Доброго всем времени суток! Так как же с цепочкой прокси? Долго не смог сделать. Но вот наткнулся на https://github.com/rofl0r/proxychains-ng Ну и гугл помог. Сначала собрал для PC(Debian), но там без проблем вообще. Испытал - работает. А как с UC7112LX-Plus? Сначала было печально. Но вот потом с бубном и матом вот: proxychains-ng.zip Испытал! Работает. Испытал цепочку локальных прокси. Конечно через curl (ранее про него говорилось уже). Долго конечно делал(собирал, а где-то и изменял код выбирая в #ifdeb #define - но фактически ничего не менял). Для работы файл libproxychains4.so надо поместить в /lib и файл proxychains4 соответственно в /usr/bin Повторно напомню, что такие(указанные) директории у меня на SD карте. А пример файла конфигурации тут: https://github.com/rofl0r/proxychains-ng/blob/master/src/proxychains.conf его можно использовать как из локальной директории с указанием через -f <file.conf> или он будет найден самим proxychains4 в /etc/proxychains.conf www-data@Moxa:~/ramdisk$ proxychains4 -f proxychains.conf curl -L -k -I www.moxa.ru [proxychains] config file found: proxychains.conf [proxychains] preloading /lib/libproxychains4.so [proxychains] DLL init: proxychains-ng 4.14 [proxychains] Strict chain ... 127.0.0.1:8080 ... 192.168.0.234:8080 ... 192.168.0.3:8080 ... www.moxa.ru:80 ... OK HTTP/1.1 301 Moved Permanently Server: nginx/1.14.1 Date: Thu, 28 Mar 2019 11:58:14 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: https://www.moxa.ru/ [proxychains] Strict chain ... 127.0.0.1:8080 ... 192.168.0.234:8080 ... 192.168.0.3:8080 ... www.moxa.ru:443 ... OK HTTP/1.1 200 Ok Server: nginx/1.14.1 Date: Thu, 28 Mar 2019 11:58:15 GMT Content-Type: text/html; charset=utf-8 Content-Length: 27520 Connection: keep-alive Expires: Thu, 19 Nov 1981 08 Cache-Control: private, no-cache, must-revalidate, max-age=0 Pragma: no-cache Status: 200 Ok X-Generated-By: UMI.CMS X-CMS-Version: dev X-XSS-Protection: 0 Set-Cookie: PHPSESSID=gfsoa9df891c0j5ugq7gpusbk3; expires=Thu, 11-Apr-2019 11:58:15 GMT; Max-Age=1209600; path=/; HttpOnly Set-Cookie: customer_currency=13; expires=Mon, 01-Apr-2019 15:58:15 GMT; Max-Age=360000; path=/ www-data@Moxa:~/ramdisk$ Как видно на самой UC7112LX-Plus поднят ещё и прокси (порт 8080), потом другой прокси и прокси для выхода в интернет. А далее отработал curl с выводом в консоль.
  11. Доброго времени суток! Опять про cURL: Имеется некий IA240LX, который по Modbus управляет системой водоподготовки. Сам он в сети предприятия. И он через curl и прокси в этой же сети получает доступ по ftp к UC-1019(Windows CE) в другой подсети (цеха). Там система управления охлаждением индукторов, которая имеет датчик температуры на улице. И: www-data@Moxa:~$ curl -x www-data:www-data@192.168.0.234:8080 ftp://admin:12345670@192.168.1.210/Temp <pre><hr> 230 User logged in, proceed. <hr>[<A HREF="..">..</A>] ---------- 11-26-18 12:15 4608 <A HREF="/Temp/test_owen_dll.exe">test_owen_dll.exe</A> ---------- 11-26-18 12:15 4096 <A HREF="/Temp/test_modbus_dll.exe">test_modbus_dll.exe</A> ---------- 11-26-18 12:15 12288 <A HREF="/Temp/test_modbus.exe">test_modbus.exe</A> ---------- 11-26-18 12:15 5120 <A HREF="/Temp/test_abp_tcp_dll.exe">test_abp_tcp_dll.exe</A> ---------- 11-26-18 12:15 69 <A HREF="/Temp/start.bat">start.bat</A> ---------- 11-26-18 12:15 6144 <A HREF="/Temp/dllOwen.dll">dllOwen.dll</A> ---------- 11-26-18 12:15 13824 <A HREF="/Temp/dllModbusRTU.dll">dllModbusRTU.dll</A> ---------- 11-26-18 12:15 7680 <A HREF="/Temp/dllCoolServer.dll">dllCoolServer.dll</A> ---------- 11-26-18 12:15 17920 <A HREF="/Temp/dllAbpTcp.dll">dllAbpTcp.dll</A> ---------- 11-26-18 12:15 10240 <A HREF="/Temp/cool.dll">cool.dll</A> ---------- 11-26-18 12:15 20480 <A HREF="/Temp/abp_tcp_test.exe">abp_tcp_test.exe</A> ---------- 11-26-18 12:15 9216 <A HREF="/Temp/abp_control.exe">abp_control.exe</A> <hr>226 Closing data connection. А затем прочитав: www-data@Moxa:~$ curl -x www-data:www-data@192.168.0.234:8080 ftp://admin:12345670@192.168.1.210/Temp/start.bat dir cd \ dir copy flash/tst/*.* temp cd temp abp_control.exe www-data@Moxa:~$ Сделан вывод, что если переделать на UNO-1019 исполняемый файл, что бы он оставлял текущие параметры в файле. Можно применить и чтение уличной температуры напрямую. В плане того, что некий UC-7112-LX-Plus имея 2 ETHERNET так же в двух этих сетях. А вот доступ к двум устройствам в разных подсетях. Это просто простой пример www-data@Moxa:~$ curl -x www-data:www-data@192.168.0.234:8080 ftp://admin:12345670@192.168.1.210/Temp ftp://root:paramon@192.168.0.246 <pre><hr> 230 User logged in, proceed. <hr>[<A HREF="..">..</A>] ---------- 11-26-18 12:15 4608 <A HREF="/Temp/test_owen_dll.exe">test_owen_dll.exe</A> ---------- 11-26-18 12:15 4096 <A HREF="/Temp/test_modbus_dll.exe">test_modbus_dll.exe</A> ---------- 11-26-18 12:15 12288 <A HREF="/Temp/test_modbus.exe">test_modbus.exe</A> ---------- 11-26-18 12:15 5120 <A HREF="/Temp/test_abp_tcp_dll.exe">test_abp_tcp_dll.exe</A> ---------- 11-26-18 12:15 69 <A HREF="/Temp/start.bat">start.bat</A> ---------- 11-26-18 12:15 6144 <A HREF="/Temp/dllOwen.dll">dllOwen.dll</A> ---------- 11-26-18 12:15 13824 <A HREF="/Temp/dllModbusRTU.dll">dllModbusRTU.dll</A> ---------- 11-26-18 12:15 7680 <A HREF="/Temp/dllCoolServer.dll">dllCoolServer.dll</A> ---------- 11-26-18 12:15 17920 <A HREF="/Temp/dllAbpTcp.dll">dllAbpTcp.dll</A> ---------- 11-26-18 12:15 10240 <A HREF="/Temp/cool.dll">cool.dll</A> ---------- 11-26-18 12:15 20480 <A HREF="/Temp/abp_tcp_test.exe">abp_tcp_test.exe</A> ---------- 11-26-18 12:15 9216 <A HREF="/Temp/abp_control.exe">abp_control.exe</A> <hr>226 Closing data connection. <pre><hr> 230- Welcome to 230- ____ _ _ 230- / __| ||_| 230- _ _| | | | _ ____ _ _ _ _ 230- | | | | | | || | _ \| | | |\ \/ / 230- | |_| | |__| || | | | | |_| |/ \ 230- | ___\____|_||_|_| |_|\____|\_/\_/ 230- | | 230- |_| 230- 230- Product UC-7101 Series 230- For further information check: 230- http://www.moxa.com.tw/ 230- 230 User root logged in. <hr>lrwxrwxrwx May 28 2010 LINK <A HREF="/mnt/ramdisk">ramdisk</A> -&gt; /mnt/ramdisk</A> lrwxrwxrwx May 28 2010 LINK <A HREF="/bin">sbin</A> -&gt; /bin</A> dr-xr-xr-x Jan 1 1970 DIR <A HREF="/proc/">proc</A> drwxr-xr-x Mar 22 2017 DIR <A HREF="/home/">home</A> drwxr-xr-x May 28 2010 DIR <A HREF="/usr/">usr</A> drwxrwxrwx Mar 15 07:52 DIR <A HREF="/var/">var</A> lrwxrwxrwx May 28 2010 LINK <A HREF="/var/tmp">tmp</A> -&gt; /var/tmp</A> drwxr-xr-x May 28 2010 DIR <A HREF="/mnt/">mnt</A> drwxr-xr-x May 28 2010 DIR <A HREF="/lib/">lib</A> drwxr-xr-x Mar 15 07:52 DIR <A HREF="/etc/">etc</A> drwxr-xr-x May 28 2010 DIR <A HREF="/dev/">dev</A> drwxr-xr-x May 28 2010 DIR <A HREF="/bin/">bin</A> <hr>226 Transfer complete. www-data@Moxa:~$ Сначала как и ранее доступ в другую подсеть к UNO-1019, а потом к UC7101-LX(Станция катодной защиты) в своей подсети. То есть сбор нужных данных по списку с помощью некого скрипта из разных устройств в разных подсетях выполнив одну команду. И в одну текстовую переменную BASH-скрипта... а потом только выделить необходимое включив нужные данные в список параметров для своего техпроцесса. Интересно тем, что можно применить и дублирование при сбоях, и задание параметров для всех процессов и т.п. Не приходило в голову, что такие инструменты для удобны в АСУ
  12. Доброго времени суток! Кроме netcat вот ещё и socat socat.zip Ранее не применял, но вчера после сборки испытал. Работает! На мой взгляд в ряде применений удобнее netcat, ну сами знаете. Уважаемые знатоки! А можно ли им как говориться наводить многоарочные мосты?
  13. Спасибо за отклик! Пот подумал, и что-то не хочется сопли вешать на устройство. Подумал и... А если взять небольшой порт вывода... малогабаритный и на DIN рейку, который бы имел аварийное состояние.И через 5 секунд при отсутствии связи пусть снимает напряжение питания на остальные устройства по Modbus. А потом контроллер пусть производит включение его вывода и этим подаёт питание на все блоки. Ну и продолжает работу по Modbus. Правда первый вариант более надёжен если бы не "сопли", а нормальный преобразователь уровней. Подумаю... Спасибо! Вопрос снят!
  14. Простите меня - я запаниковал. Вот: Дискретный вывод Количество каналов дискретного вывода 4  Максимальная нагрузка на канал 24 мА  Напряжение лог. 0 0 ~ 0.55 В  Напряжение лог. 1 2.5 ~ 3.3 В Как то в документации на диске не прочитал. Зато найдено тут: https://www.moxa.ru/shop/comp/risc/ia/ia240-lx/ Странно такие слабенькие. Ну что же... значит надо по первой схеме. Да странно... это по логике на 3.3 В. Даже без буфера? Лучше наверное вообще через оптопару!
  15. Доброго времени суток! В документации не смог найти... и простите, если там написано, но не прочёл! Собственно вопрос в том, каковы на IA240LX типы выходов. То что ключи это ясно. Не ведаю какого типа. Происходит замыкание на корпус (открытый коллектор) или выдаёт уровень напряжения. Будь это устройство на столе я бы проверил, но оно в шкафу в процессе работы. Необходимость возникла в том, что на шине Modbus RTU теряется связь с модулями в плане того, они(он) при потере связи хоть и уходят в безопасное состояние(не все это умеют), но не переходят в режим "молчания" на шине, а держат некий уровень (занятость) и было принято решение питать их (снимать питание) через реле времени, которое сбрасывается фронтами импульсов. Программа на IA240LX кроме работы по Modbus должна контролировать и наличие связи с блоками и при отсутствии прекращать выдачу импульсов для сброса реле времени. А оно в свою очередь снимет питание с устройств ввода-вывода. Это перезапустит все устройства ввода-вывода и при следующих импульсах реле снова подаст питание. А импульсы (фронты/тылы) а не уровни (высокий или низкий) должны сбрасывать реле времени. Само устройство IA240LX (и сейчас так же) ещё и контролируется сервером по сети и при необходимости им же и перезапускается. Вот реле времени вроде как подобрал, а типы выходов не известны. Исходя из них либо выбрать другой тип реле времени и/или изменить схему. Подскажите если не сложно! А то проверять в процессе эксплуатации никак не выходит. Для реализации потребуется либо собрать одну из схем: Либо осуществить контакт с "Меандр"ом на наличие у них устройств под соответствующий выход DO (IA240LX) Как физически реализован DO на IA240LX? Заранее Спасибо!
  16. Доброго времени суток! Извините, за беспокойство! Но есть ли у Вас возможность/желание оказать помощь/подсказку. Я честно сказать не знаю куда и как копать. Вопрос в следующем. Требуется в UC-7112-LX-Plus примонтировать сетевой ресурс FTP и желательно вообще SMB с целью сохранения данных там от самого устройства. Скрипт BASH должен это делать и ещё то что сделано на Си. Методом проб и ошибок с бубном собрал (громко сказано): root@Moxa:~# curl -V curl 7.63.0 (arm-unknown-linux-gnu) libcurl/7.63.0 OpenSSL/1.0.2p Release-Date: 2018-12-12 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets HTTPS-proxy root@Moxa:~# root@Moxa:~# mount.fuse -V usage: mount.fuse type#[source] destination [-t type] [-o opt[,opts...]] root@Moxa:~# curlftpfs -V curlftpfs 0.9.2 libcurl/7.63.0 fuse/2.9 Вот только (в чём и вопрос): root@Moxa:~# curlftpfs www-data:www-data@192.168.0.232 /var/tmp fuse: device not found, try 'modprobe fuse' first а модуля fuse нет... ну понятно, что и fuse.ko нет. Если библиотеки получилось собрать: lrwxrwxrwx 1 root root 16 Feb 2 22:30 libfuse.so -> libfuse.so.2.9.2 lrwxrwxrwx 1 root root 16 Feb 2 22:32 libfuse.so.2 -> libfuse.so.2.9.2 -rwxr-xr-x 1 root root 753697 Feb 3 17:10 libfuse.so.2.9.2 Не без Ваших: lrwxrwxrwx 1 root root 23 Feb 3 03:30 libglib-2.0.so.0 -> libglib-2.0.so.0.2400.2 -rw-r--r-- 1 www-data www-data 1480995 May 24 2015 libglib-2.0.so.0.2400.2 И других, которые Вы предоставили ранее вместе с mc. Можно ли либо обойтись без fuse.ko либо пересобрать mount.fuse и/или curlftpfs??? Реально ли реализовать cifs на UC-7112-LX-Plus??? Была идея обойтись только curl, но вот не вышло работать с ним в скрипте, где надо передавать данные из параметра в bash, а не из файла. Места в устройстве и так мало, USB отсутствует. Вот и решил внешнее сетевое устройство. Про NFS пока не думал. Спасибо!
  17. А вот некий перевод А тулчейн на самом устройстве сам ищу, и собрать не умею пока
  18. Доброго времени суток!!! Конечно сей прокси вроде как ни к чему но... но при применении по схеме LAN1 <---> LAN2 через конфигурацию столкнулись с проблемой когда контроллер AC800M (ABB) наглухо зависал. А ранее его так же включали в общую локальную сеть... и так же зависал. Он контроллер имеет 2 ETHERNEN соединения с IP 192.169.0.100 и 192.168.1.100 соответственно. По 1-му он связан с сенсорным дисплеем, а второй был свободен. Подключались к первому - пускали в локалку. Потом был опыт с применением 2-го соединения - удачно! Ну и другая подсеть соответственно. Всё для сбора данных. И в эту подсеть ещё один контроллер - управление охлаждением. А узлом между локалкой и подсетью ПК с двумя сетевухами. Ну иногда нужен доступ к каждому из контроллеров из локалки. Все контроллеры с WEB - интерфейсами. Тут и помог сей прокси. А просьба и вопрос вот в чём: Имеется ли для UC-7112-Lx-Plus набор утилит cifs (mount.cifs и др)? Собственно собрал, но только mount.cifs - думал будет работать. А он пустышка. Потому как в исходниках нет ни cifs.idmap, ни cifs.upcall ни др. Точнее есть.. по умолчанию они в сборку не включены. А если ключами добавить типа: #!/bin/sh echo "------ для UC7112LX-plus ------" ./configure \ ARCH=arm \ CC=/usr/local/arm-linux/bin/arm-linux-gcc \ CROSS_COMPILE=/usr/local/arm-linux/bin/arm-linux- \ LDFLAGS="-L/usr/local/arm-linux/lib" \ --host=arm-linux \ --enable-pie=no \ --enable-cifsacl \ ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes Тут только cifsacl то сразу нет ряда файлов (заголовочных... ну и Си соответственно). Искал... они конечно есть в samba... и их надо грамотно перетаскивать. Это можно попробовать. Там в описании cifs сказано, что пакет не требует дополнительных библиотек, но должны быть файлы упомянутые ранее, которые не включены в сбору. Да без ключей собрал mount.cifs на устройстве запускается и умеет только help. А надо все утилиты. Кругом машины с windows. С curl работает всё, но это только бросать логи на расшареную папку некой машины. А хочется сделать некий рабочий буфер для самого устройства в сети. Будь это IA240LX можно было бы и HDD подключить. А на UC-7112-LX-Plus можно только по сети, потому как SD карта не в счёт и она для другого. Спасибо!
  19. С Новым Годом! (Старым конечно). Доброго времени суток! ...Первые опыты с curl по smb. Тут читаю файл с некой машины из расшареной папки windows и вывожу в консоль www-data@Moxa:~/ramdisk$ curl -u ":" smb://192.168.0.74/shared/test.txt ----TEST--- www-data@Moxa:~/ramdisk$ Как видно -u ":" тут согласно подсказки пользователь:пароль ну и/или домен. Машина со свободным доступом к папке специально для всех и всё (кстати винда виртуальная на VirtualBox). Ключ -u и содержимое надо обязательно. И вот: www-data@Moxa:~/ramdisk$ curl -u "1234abcde:5678fghi" smb://192.168.0.74/shared/test.txt ----TEST--- www-data@Moxa:~/ramdisk$ даже логин и пароль от потолка... папка открыта для всех. Выведено содержимое файла test.txt из соответствующего места в консоль А вот подготовили некий файл 123.txt на устройстве UC7112LX-plus и отправили его: www-data@Moxa:~/ramdisk$ curl -T 123.txt -u "1234:5678" smb://192.168.0.74/shared/123.txt % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18 0 0 100 18 0 7 0:00:02 0:00:02 --:--:-- 7 www-data@Moxa:~/ramdisk$ Ну и потом прочитали его же из машины по сети с выводом в консоль: www-data@Moxa:~/ramdisk$ curl -u "1234:5678" smb://192.168.0.74/shared/123.txt -----abc---- 123 www-data@Moxa:~/ramdisk$ Так что метод работает... контроллеры сами могут класть и брать файлы на машины windows, где какие-то программы их потребляют. А вот если к примеру MySQL-клиент на контроллере. Он сам сможет вносить что-то в базу данных и брать из неё. Это как вариант...
  20. Доброго времени суток! И... и с наступающим СТАРЫМ НОВЫМ ГОДОМ! Искал и вот наткнулся на curl-7.63.0 ну и решил собрать и его. Да и сделать "инсталяцию" его на устройства типа IA240LX/UC-7112-LX-plus. Вот: curl_7.63.zip Но есть одно НО! А именно у меня на SD карте есть директории USR и LIB и они примонтированы на место /usr и /lib соответственно. Таким образом это обезопасило меня для опытов. SD карта гораздо дешевле устройства. И вот: www-data@Moxa:~$ curl --version curl 7.63.0 (arm-unknown-linux-gnu) libcurl/7.63.0 OpenSSL/0.9.8i Release-Date: 2018-12-12 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL UnixSockets HTTPS-proxy www-data@Moxa:~$ Видите теперь есть ещё и SMB, то есть теперь устройство может самостоятельно с помощью curl сохранять и изменять файлы по сети на машинах windows. Значит можно делать логи и т.п. прямо в нужном месте в сети, а не на устройстве. Для установки (про монтирование уже сказал) надо запустить install.sh вот: # ./install.sh install for IA240LX / UC-7112-LX-Plus copy curl to /usr/bin ... copy libcurl.so.4.5.0 to /lib/libcurl.so.4.5.0 ... create link libcurl.so.4 ... curl --version curl 7.63.0 (arm-unknown-linux-gnu) libcurl/7.63.0 OpenSSL/0.9.8i Release-Date: 2018-12-12 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL UnixSockets HTTPS-proxy END
  21. Доброго времени суток! Вот: 3proxy.zip Прокси сервер. Это так сказать с разгона в обучении сборки. Тут только исполняемые файлы. Я испытал proxy без всяких настроек только так: ./proxy -p8080 Тем самым сделав соединение через прокси между интерфейсами LAN1 и LAN2. Кстати нормально работает. Только apache пришлось остановить - ест много ОЗУ. Всё можно оформить по человечески в /usr/bin В моём применении (для меня) штука полезная. Сам прокси - он 3proxy как есть, только собран компилятором, что с диска от IA240/UC-7112-LX-Plus. Вот блин теперь он будет сразу в двух подсетях, а не PC с Debian с двумя сетевыми картами.
  22. Сказать откровенно, то nc маловато будет. А по сему практически не умея собирать (только учусь) что-то из исходников... всё ж таки собрал bin.zip этот curl www-data@Moxa:~/ramdisk$ curl -V curl 7.31.0 (/usr/local/arm-linux/bin/arm-linux-gcc) libcurl/7.31.0 OpenSSL/0.9.8i Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp Features: Largefile NTLM NTLM_WB SSL www-data@Moxa:~/ramdisk$ для его работы надо скопировать libcurl.so.4.3.0 в /lib и создать на него символьную ссылку libcurl.so.4 согласно этому например http://tftf.ru/stati/linux/sozdat_simvolicheskuyu_ssylku_na_papku_fajl/ а файл curl лучше положить в /usr/bin понятно если это требуется. А сейчас ввиду того, что памяти у UC-7112-Lx-Plus очень мало имею желание ещё реализовать и smbclient на устройстве. Пусть само устройство имеет доступ к какому-нибудь локальному ресурсу по сети для сохранения промежуточных файлов работы ну и/или так просто. Саму сборку не выкладываю - стыдно за неграмотность. но вот работа curl (пример) - через прокси www-data@Moxa:~/ramdisk$ curl -I -x www-data:www-data@192.168.0.234:8080 http://192.168.1.210 HTTP/1.0 302 Object Moved Date: Mon, 24 Dec 2018 06:32:13 GMT Server: Microsoft-WinCE/5.0 Location: /remoteadmin/ Content-Type: text/html Content-Length: 125 Connection: Close Proxy-Connection: Close www-data@Moxa:~/ramdisk$ Как раз через прокси с паролем в другую локальную подсеть. Прокси тоже локальный и в интернет не выходит. А так с --location (то же через прокси): www-data@Moxa:~$ curl -I --location -x www-data:www-data@192.168.0.234:8080 http://192.168.1.210 HTTP/1.0 302 Object Moved Date: Wed, 26 Dec 2018 00:56:37 GMT Server: Microsoft-WinCE/5.0 Location: /remoteadmin/ Content-Type: text/html Content-Length: 125 Connection: Close Proxy-Connection: Close HTTP/1.0 200 OK Date: Wed, 26 Dec 2018 00:56:37 GMT Server: Microsoft-WinCE/5.0 Content-length: 6760 Pragma: no-cache Cache-Control: no-cache Content-type: text/html Connection: Keep-Alive Proxy-Connection: Keep-Alive www-data@Moxa:~$ А так просто скачиваем страничку из контроллера (и опять через прокси) www-data@Moxa:~$ curl --location -x www-data:www-data@192.168.0.234:8080 http://192.168.1.210 <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> <!-- Use of this source code is subject to the terms of the Microsoft end-user license agreement (EULA) under which you licensed this SOFTWARE PRODUCT. If you did not accept the terms of the EULA, you are not authorized to use this source code. For a copy of the EULA, please see the LICENSE.RTF on your install media. --> <script language="javascript"> var g_PASSWORD_PasswordSet = "1"; </script> <script language="javascript"> var g_HOSTNAME_Name = "UNO-1019_1"; </script> <script language="javascript"> if('undefined' == typeof(g_NETWORK_PROTOCOLSTOBINDTO)) {g_NETWORK_PROTOCOLSTOBINDTO = new Array();} g_NETWORK_PROTOCOLSTOBINDTO["ASYNCMAC1"] = "*"; g_NETWORK_PROTOCOLSTOBINDTO["PPTP1"] = "*"; g_NETWORK_PROTOCOLSTOBINDTO["L2TP1"] = "*"; g_NETWORK_PROTOCOLSTOBINDTO["PPPOE1"] = "*"; g_NETWORK_PROTOCOLSTOBINDTO["DM9CE1"] = "*"; g_NETWORK_PROTOCOLSTOBINDTO["DM9CETWO1"] = "*"; if('undefined' == typeof(g_NETWORK_DHCP)) {g_NETWORK_DHCP = new Array();} g_NETWORK_DHCP["DM9CETWO1"] = "DISABLED"; if('undefined' == typeof(g_NETWORK_GATEWAY)) {g_NETWORK_GATEWAY = new Array();} g_NETWORK_GATEWAY["DM9CETWO1"] = ""; if('undefined' == typeof(g_NETWORK_WINS2)) {g_NETWORK_WINS2 = new Array();} g_NETWORK_WINS2["DM9CETWO1"] = ""; if('undefined' == typeof(g_NETWORK_WINS1)) {g_NETWORK_WINS1 = new Array();} g_NETWORK_WINS1["DM9CETWO1"] = ""; if('undefined' == typeof(g_NETWORK_DNS2)) {g_NETWORK_DNS2 = new Array();} g_NETWORK_DNS2["DM9CETWO1"] = ""; if('undefined' == typeof(g_NETWORK_DNS1)) {g_NETWORK_DNS1 = new Array();} g_NETWORK_DNS1["DM9CETWO1"] = ""; if('undefined' == typeof(g_NETWORK_AUTODNS)) {g_NETWORK_AUTODNS = new Array();} g_NETWORK_AUTODNS["DM9CETWO1"] = "1"; if('undefined' == typeof(g_NETWORK_Subnet)) {g_NETWORK_Subnet = new Array();} g_NETWORK_Subnet["DM9CETWO1"] = "255.255.255.0"; if('undefined' == typeof(g_NETWORK_MACAddress)) {g_NETWORK_MACAddress = new Array();} g_NETWORK_MACAddress["DM9CETWO1"] = "00-d0-c9-be-7e-45"; if('undefined' == typeof(g_NETWORK_IPAddress)) {g_NETWORK_IPAddress = new Array();} g_NETWORK_IPAddress["DM9CETWO1"] = "192.168.1.210"; </script> <noscript><body bgcolor=#d6dff5><center><b><font color=#6487dc>Javascript support is required to display this page</font></b></center></body></noscript> <script src="ParsedGeneralUtils.js" language="javascript"></script><script src="../remoteadminimages/GeneralUtils.js" language="javascript"></script> <script language="javascript"> var l_ShowingPasswords = false; // Local variables (NOTE: make sure these match the values in changepassword.htm) var l_PasswordMinLen = 3; var l_PasswordMaxLen = 16; function ShowPasswordErrors() { if(window.g_PASSWORD_SuccessfullyChanged) { return new String("<font color=#0000FF>Successfully changed password!</font>"); } if(window.g_PASSWORD_Mismatch) { return new String("<font color=#FF0000>Password mismatch! -- please try again</font>"); } if(window.g_PASSWORD_InvalidPassword) { return new String("<font color=#FF0000>Invalid Password! -- please try again</font>"); } return new String(""); } function ShowBoth() { ShowHostNameConfig(); } function ShowHostNameConfig() { // Device Name BuildBoxHeader(); document.write("<table class=boxInside>"); document.write("<TR><TD class=cellLtColor>Device Name:</TD></TR>"); document.write("<TR><TD><INPUT type=text onkeyup=enableApply() name=\"HOSTNAME_Name\" value=\"" + g_HOSTNAME_Name + "\"></TD></TR>"); document.write("<TR><TD><INPUT type=hidden name=a_REMOTEUTILS_NOBACKUPREGISTRY_OOBE value=\"0\"></TD></TR>"); document.write("</table>"); BuildBoxFooter(); AddApplyCancel(); AddErrorDisplay(); ClearError(); } function ShowPasswordConfig() { l_ShowingPasswords = true; // Device Password BuildBoxHeader(); document.write("<table class=boxInside>"); document.write("<TR><TD COLSPAN=2 class=cellLtColor>Device Log On: " + ShowPasswordErrors() + "</TD></TR>"); document.write("<TR><TD COLSPAN=2>To access the device, type your password and then click <B>Log On</B>. Your base station password is case sensitive.</TD></TR>"); if(window.g_PASSWORD_PasswordSet) { document.write("<TR>"); document.write(" <TD>Old Password:</TD>"); document.write(" <TD><input type=\"password\" onkeyup=enableApply() name=\"PASSWORD_PWDOLD\" size=\"20\"></TD>"); document.write("</TR>"); } document.write("<TR>"); document.write(" <TD>Password:</TD>"); document.write(" <TD><input type=\"password\" onkeyup=enableApply() name=\"PASSWORD_PWD\" size=\"20\"></TD>"); document.write("</TR>"); document.write("<TR>"); document.write(" <TD>Verification:</TD>"); document.write(" <TD><input type=\"password\" onkeyup=enableApply() name=\"PASSWORD_PWDVERIFY\" size=\"20\"></TD>"); document.write("</TR>"); document.write("<TR>"); document.write(" <TD COLSPAN=2><input type=hidden value=ENABLED name=PASSWORD_SECURITYLEVEL></TD>"); document.write("<TR>"); document.write("</table>"); BuildBoxFooter(); AddApplyCancel(); AddErrorDisplay(); ClearError(); } function SubmitHandler(SubmitVar) { var bOK = true; ClearError(); var form = FindObject("EditForm"); if (l_ShowingPasswords) { if(window.g_PASSWORD_PasswordSet) { bOK = ValidatePW(form.PASSWORD_PWDOLD, l_PasswordMinLen, l_PasswordMaxLen); } bOK &= ValidatePW(form.PASSWORD_PWD, l_PasswordMinLen, l_PasswordMaxLen); bOK &= ValidatePW(form.PASSWORD_PWDVERIFY, l_PasswordMinLen, l_PasswordMaxLen); if (form.PASSWORD_PWD.value != form.PASSWORD_PWDVERIFY.value) { FlagError(form.PASSWORD_PWD, "PWDontMatch"); FlagError(form.PASSWORD_PWDVERIFY, "PWDontMatch"); bOK = false; } } else { bOK = ValidateHostName("HOSTNAME_NAME"); } // If everything passed then pass this onto the global handler to submit if (true == bOK) { GlobalSubmitHandler(SubmitVar); return true; }else{ FocusFirstError(); return false; } } </script> <html> <script language="javascript"> document.write("<form ID=EditForm METHOD=post onsubmit='return SubmitHandler(this)'>"); if(!window.g_PASSWORD_PasswordSet) { BuildMainTable_NoToolBar("NAS Admin", "", "ShowPasswordConfig()"); } else if(window.g_HOSTNAME_NotSet) { BuildMainTable_NoToolBar("NAS Admin", "Please assign your device a network name", "ShowHostNameConfig()"); } else { BuildMainTable("Please name your device", "", "ShowBoth()"); } document.write("</form>"); </script> </html> www-data@Moxa:~$ И это не выложил бы, но уж больно давно сам хотел этот curl именно на MOXA UC-7112-Lx-Plus... а тут удача в попытке
  23. Вообще-то я про пример реализации. Делается несколько скриптов, которые стартуют через один. Потому как обслуживающий персонал(КИПиА) не может(или не должен) заниматься установкой того или иного на устройства или ПК. По факту ПК(Debian) один работает с рядом устройств (систем): 1 Сбор данных с индукционной печи (Promelt ABP) и системой её охлаждения(UNO1019). Этот ПК ещё и сервер для раздачи данных реального времени клиентам и ПК архивирования данных(Windows XP); 2 Сбор данных от станции катодной защиты через UC7101Lx (modbusRTUserverS). Эта же часть сервер на ПК(Debian) станции катодной защиты для выдачи клиентам данных по локальной сети и серверу базы данных (Windows); 3 Сбор данных от системы управления водоснабжением на основе IA240LX(сама по себе автономная на основе нескольких modbusRTUserverS и одного сервера управления). Как сервер на ПК(Debian) предоставляет управление и данные по локальной сети; 4 Настройка устройств (вновь приобретённых) для работы в перечисленном и ещё для настроек установок порезки кабеля, КМА, связи робота покраски. Всё это через один ПК на основе Debian, на котором ещё и WEB сервер Apache... который применяется для мгновенных просмотров и управления. Подготовка документации для каждого пункта дело не шуточное. Самое простое это упростить пустую писанину, которую как обычно никто не читает... и приходится приходить на помощь... и делать самому. Потому и прошу поделиться опытом в этом. В идеале должно быть так: 1 установили debian допустим на новый ПК 2 установили на него apache+php и сделали настройку пользователя для apache 3 скопировали из архива директорию в директорию apache "www-data" 4 запустили конфигурацию(скрипт) которая сделает(это реализовано): -настройку сервера apache; -сетевые настройки; -ramdisk, rc.local и т.п. 5 с помощью скриптов (интерактивно) произведёт проверку и настройку подключенных устройств; 6 разместит рабочие файлы для всех устройств (вплоть до компиляции) для любой машины Debian; 7 подготовит автозапуск при включении. Собственно надо сформировать весь набор для полуавтоматической настройки всего... включая устройства. Поделитесь опытом... Спасибо!
  24. Это как один из рабочих вариантов скрипта (остальных файлов нет... а только скрипт): #!/bin/bash # function ffilecntrl() { clear echo "Проверка соответствия файлов для системы водоподготовки на сервере..." echo "...компиляция сервера \"swc\"" cd create str=`make` cmp /home/httpd/swc/swc swc 2>/dev/null res=$? if [ ${res} -eq 0 ]; then echo "файл \"swc\" соответствует проекту" else echo "файл \"swc\" не соответствует проекту" echo "копируем новый файл..." cp swc /home/httpd/swc/swc fi echo "...очистка после компиляции" make clean cd .. cd bash echo "...проверка соответствия \"swc.sh\"" cmp /home/httpd/swc/swc.sh swc.sh 2>/dev/null res=$? if [ ${res} -eq 0 ]; then echo "файл \"swc.sh\" соответствует проекту" else echo "файл \"swc.sh\" не соответствует проекту" echo "копируем новый файл..." cp swc.sh /home/httpd/swc/swc.sh fi echo "...проверка соответствия \"swc.sh\"" cmp /home/httpd/swc/swcwork.sh swcwork.sh 2>/dev/null res=$? if [ ${res} -eq 0 ]; then echo "файл \"swcwork.sh\" соответствует проекту" else echo "файл \"swcwork.sh\" не соответствует проекту" echo "копируем новый файл..." cp swcwork.sh /home/httpd/swc/swcwork.sh fi cd .. cd html echo "...проверка соответствия \"index.html\"" cmp /home/httpd/swc/index.html index.html 2>/dev/null res=$? if [ ${res} -eq 0 ]; then echo "файл \"index.html\" соответствует проекту" else echo "файл \"index.html\" не соответствует проекту" echo "копируем новый файл..." cp index.html /home/httpd/swc/index.html fi echo "...проверка соответствия \"swc_dat.php\"" cmp /home/httpd/swc/swc_dat.php swc_dat.php 2>/dev/null res=$? if [ ${res} -eq 0 ]; then echo "файл \"swc_dat.php\" соответствует проекту" else echo "файл \"swc_dat.php\" не соответствует проекту" echo "копируем новый файл..." cp swc_dat.php /home/httpd/swc/swc_dat.php fi echo "...проверка соответствия \"swcwork.php\"" cmp /home/httpd/swc/swcwork.php swcwork.php 2>/dev/null res=$? if [ ${res} -eq 0 ]; then echo "файл \"swcwork.php\" соответствует проекту" else echo "файл \"swcwork.php\" не соответствует проекту" echo "копируем новый файл..." cp swcwork.php /home/httpd/swc/swcwork.php fi cd .. echo 5 } function fconnect() { clear echo "Ping устройства управления IA240LX по адресу 192.168.0.232" str=`ping -c 1 192.168.0.232 2>/dev/null` res=$? if [ ${res} -eq 0 ]; then echo "...связь есть" else echo "...связи нет и дальнейшая проверка отменена!" sleep 5 return fi echo "Проверка связи с сервером Modbus RTU на порту P1" str=`nc -z 192.168.0.232 8971 2>/dev/null` res=$? if [ ${res} -eq 0 ]; then echo "...связь есть с Modbus RTU на порту P1 (управление клапанами и приводами)" else echo "...связи нет с Modbus RTU на порту P1 (управление клапанами и приводами)" echo "...дальнейшая проверка отменена!" sleep 5 return fi echo "Проверка связи с сервером Modbus RTU на порту P2" str=`nc -z 192.168.0.232 8972 2>/dev/null` res=$? if [ ${res} -eq 0 ]; then echo "...связь есть с Modbus RTU на порту P2 (измеритель температуры)" else echo "...связи нет с Modbus RTU на порту P2 (измеритель температуры)" echo "...дальнейшая проверка отменена!" sleep 5 return fi echo "Проверка связи с сервером системы управления IA240LX водоподготовки" str=`nc -z 192.168.0.232 8197 2>/dev/null` res=$? if [ ${res} -eq 0 ]; then echo "...связь есть с сервером системы управления IA240LX водоподготовки" else echo "...связи нет с сервером системы управления IA240LX водоподготовки" echo "...функционирование не реально!" sleep 5 return fi echo "Всё в порядке!" sleep 5 } #основной цикл работы ((loop = 1)) while( ((loop > 0)) ); do clear echo "********************************************" echo "* Настройка Сервера системы водоподготовки *" echo "********************************************" echo "Выбрать действие:" echo "1 - соответствие файлов для системы водоподготовки" echo "2 - проверка связи в устройством управления MOXA IA240LX системы водоподготовки" echo "иначе - прекратить действия" echo -n "Ваш Выбор ?:" read wrk case $wrk in "1") ffilecntrl ;; "2") fconnect ;; *) ((loop = 0)) ;; esac done #конец основного цикла exit 0 Его задача сформировать "окружение" на сервере с Debian (PC) для работы с системой на основе IA240LX. Следует отметить тут проверяется только связь с устройством IA240LX и соответствие файлов для работы самого сервера DEBIAN(PC). Необходим для конфигурации сервера Debian(PC) для работы с системой водоподготовки. Следует так же отметить, что для настройки устройств MOXA служит другой скрипт. А так конфигурируем/управляем через php + bash
  25. Доброго времени суток! Имеется необходимость на имеющемся сервере с Debian сделать автонастройку системы на устройствах типа UC7101Lx, UC7112Lx-Plus, IA240Lx. 1. Вновь купленное устройство надо настроить и поместить в него файлы проекта: Изначально у них IP 192.168.3.128 (lan1), пароль root для пользователя root. Скрипт на сервере должен произвести настройку удалённо на новом устройстве... либо запросить параметры если устройство ранее применялось. Так же должен произвести компиляцию средствами toolchain для устройства и разместить в нужном месте устройства. Изменить и/или добавить пользователя и пароль. Изменить файл /etc/init.d/rc.local и /etc/network/intrerfaces. Произвести перезапуск устройства и произвести проверку на соответствие для проекта. 2. Скрипт сопровождения на сервере обязан контролировать работоспособность программы проекта и производить взаимодействие (сбор данных и управление) с проектом на устройстве. В случае необходимости производить перезапуск устройства. В этих целях применял NetCat и Ping для проверки взаимодействия. Для nc имеется проблема - долго висят "мёртвые" соединения и интервал проверки пришлось увеличить до 3-х минут. Для управления telnet, а для копирования файлов ftp. Имеет ли кто опыт в подобной реализации? Спасибо заранее.
×
×
  • Create New...