PDA

Просмотр полной версии : Пример реализации Web сервера - изменение IP настроек и построение графика



Малышев Олег
15.12.2008, 13:29
Прошу переместить в примеры программ
-----------------------------
Программа тестировалась под FireFox, Opera, GoogleChrome, Safary.
Под IE не работает по причине несовместимости IE со стандартами W3C

Скачать пример (http://kipshop.ru/Primeri/Samples_plc1xx/Communication/05_Web_server.zip)

alex1963
16.12.2008, 14:10
Не вполне понял про POST. Также не понял, зачем 3 сервера? Чтобы одновременно обслуживать 3 клиентов? Но, в конце концов, это детали.

А вот на вопрос, как что-либо подобное заставить работать через RS-232+модем, я вразумительного ответа так и не получил (тема Овен ПЛК + TCP/IP) :(. Какая версия прошивки нужна? Что и где крутить для конфигурации?

Филоненко Владислав
16.12.2008, 20:58
Можно, через поддержку модемного доступа в Интернет, к-я как раз сейчас интенсивно у нас тестируется. Но скорость, естественно, на уровне модема...

Малышев Олег
17.12.2008, 09:54
1) Зачем N экземпляров сервера? Если на странице N фреймов браузер будет пытаться читать их одновременно из разных файлов. Старый пример веб сервера не порадует браузер. А почему бы нескольким клиентам не раздавать данные.
2) См ЛС.

alex1963
17.12.2008, 12:51
Обнаруживается еще и такая проблема (это видно уже в примере). Допустим, нужно передать массив. Тут мы упираемся в кривой интерфейс symlib.
А в CodeSys предусмотрена аналогичная библиотека SysLibSymbols. В ней все более удобно. Имеется единственная функция, возвращающая адрес символа. Хочешь читай, хочешь пиши, хочешь одну переменную, хочешь - массив. Причем адреса можно получать при инициализации и не тратить время на манипуляции с символами постоянно. Конечно, нужна еще SysLibGetSymbolType, но тип символа должен возвращаться как enum (т. е. int!), чтобы использовать case, а не сравнение строк. Ну, и для полноты еще неплохо бы SysLibEnumSymbols, последовательно возвращающую все доступные символы, т. к. в некоторых случаях, видимо, будет удобно отправлять их все одним махом, например по "GET all_vars".

Малышев Олег
17.12.2008, 13:21
Забавно, возможно я не в курсе, и давно такая замечательная библиотека есть? Если не трудно зашлите ее. К сожалению, она не поддержана на нашем контроллере.

alex1963
17.12.2008, 15:55
Я, собственно, про усовершенствование интерфейса доступа к переменным по именам. А библиотеки Sys..., как я понимаю, для каждого контроллера свои. То, что в CodeSys, наверное, для Soft-PLC (компьютера). Впрочем, Вам лучше знать ;)

Филоненко Владислав
17.12.2008, 16:03
symlib была нами сделана, потому что для embeded систем символы из прикладной программы вообще не поддерживались. Хотя в недрах исходников были куски, реализующие доступ, то ли дело бросили, то ли не хотели создавать конкуренции Soft-PLC. Дело тёмное.
Так что если пришлёте библиотеку SysLibSymbols - мы, в свою очередь, постараемся её поддержать (если это будет возможно).

alex1963
17.12.2008, 18:01
Да, похоже, библиотека эта чисто виртуальная сущность - при ближайшем рассмотрении ее нет, есть только SysLibSymbols_E.pdf и соответствующие темы в help'е. Похоже действительно хотели, но не сделали. Но это не важно. Я просто предлагаю реализовать более удобный интерфейс доступа к символам:

void *SysLibGetSymbolAddress(const char *Name); /* То, что хотели сделать в СoDeSys, см. help */
typedef enum { INT, SINT, REAL, .... } data_type;
data_type SysLibGetSymbolType(const char *Name);
typedef struct { const char *name; void *address; data_type type; } symbol_info;
const symbol_info *SysLibEnumSymbols(bool Start); /* Информация о всех символах по-одному, Start==TRUE для первого обращения */

Игорь Петров
23.12.2008, 11:26
Да, похоже, библиотека эта чисто виртуальная сущность - при ближайшем рассмотрении ее нет...
:rolleyes: Хелп внимательно читали? Данная биб-ка реализована для больших ПЛК высшей ценовой категории на базе системы исполнения CSP32F. В них она и работает. В большинстве ПЛК эконом класса на базе CSP32E (embedded) обычно нет даже файловой системы! Тут ее в принципе нет смысла поддерживать.

Для ПЛК Овен вполне можно реализовать предложенный вариант. Только лучше назвать эту биб-ку иначе, дабы не путаться.

Мундштук
28.12.2008, 22:32
Прошу переместить в примеры программ

предлагаю разместить все дополнительные библиотеки ОВЕН, в частности SymLib в разделе программное обеспечение CoDeSys

возникли вопросы по проекту, инструкциям в Readme.txt (использую PLC 100-K-L):

--------------------------------------------------------------------------------------------------------------------------
???>>>>>>>> прошу Вас ответить на мои вопросы, подробно для начинающего


Пример веб сервера для ОВЕН ПЛК

2. Для использования нужно залить содежимое папки content на свой ПЛК (Login - Write file to PLC)
???>>>>>>записать без создания папки, в корень файловой системы ПЛК?

3. Сервер может запускаться на нескольких сокетах, на каждый экземпляр сервера - по сокету. В данном примере 3 сокета
???>>>>>>>>>> количество сокетов = количество пользователей сервера ?

4. При использовании чтения записи символов из сервера нужно экспортировать нужные символы
(для записываемых открыть возможность записи) в файл :"Project-Option-Symbol Configuration-Dumb Symbol entries +
Configure Symbol File...
???>>>>>>>>>> для русской версии CodeSys : Проект\Опции\Символьная конфигурация\
создавать описания (ДА) ?
создавать XML файл (НЕТ) ?

Проект\Опции\Символьная конфигурация\настроить символьный файл\установка атрибутов объекта
экспорт переменных проекта (ДА, для некоторых модулей и библиотек)
экспорт данных (НЕТ)
экспорт структур (ДА, для некоторых модулей и библиотек)
экспорт массивов (ДА, для некоторых модулей и библиотек)
доступ по записи (ДА, для некоторых модулей и библиотек)
что еще конфигурировать ?



Установить автозагрузку файла символов target settings-General-Download symbol file
???>>>>>>>>>>>> Настройки целевой платформы\Общие\
загрузить символьный файл (ДА)



5. Ограничение на количество сокетов не более 20 - ограничение на количество одновременно открытых файлов -5
???>>>>>>> к чему приведет ограничение 20 и 5 ? Если потребуется больше, то как увеличить?


6. Требуемые дополнительные библиотеки SysLibMem,SysLibFile,SysLibSock,SymLib.

???>>>>>>при переносе проекта на ПЛК 100 KL не был доступен файл MainRoot и пришлось заново выбрать целевую платформу (target)
???>>>>>>и создать начальную конфигурацию
CodeSys\Конфигурация ПЛК\Дополнения\Стандартная конфигурация



???>>>>>> наверное, в конфигурации потерялся сетевой модуль ? какой и какие настройки?

???>>>>>> И наконец, порядок использования сервера:
1) через порт 100BaseT RJ45 ?
2)при помощи Int.Expl. (или аналога) с уcтановленной JAVA
войти как "http://www.IP_адрес_ПЛК" или иначе ?

Olex007
08.01.2009, 02:17
2. >>записать без создания папки, в корень файловой системы ПЛК? Да

3. уже сказано выше


5. >>>> к чему приведет ограничение 20 и 5 ? Если потребуется больше, то как увеличить? Замена ПЛК
:)

6. Требуемые дополнительные библиотеки SysLibMem,SysLibFile,SysLibSock,SymLib.
Все в biblio_CoDeSys.zip (http://www.owen.ru/device/88206764) кроме SymLib - эта где-то тут по форуму бегала :)

???>>>>>>при переносе проекта на ПЛК 100 KL не был доступен файл MainRoot и пришлось заново выбрать целевую платформу (target)
поставь тагет PLC100.R-M

???>>>>>> И наконец, порядок использования сервера:
1) через порт 100BaseT RJ45 ? Да
2)при помощи Int.Expl. (или аналога) с уcтановленной JAVA
войти как "http://www.IP_адрес_ПЛК" или иначе ?
скорее "http://IP_адрес_ПЛК"

Мундштук
09.01.2009, 22:08
вместо синусоиды (вроде она замышлялась автором)
на графике рисует горизонтальный пунктир

начальные значения переменнных переменных отображаются как wrong

почему ?

PS: смотрел через IE и GoogleChrome, везде установлена корректная Жаба SUN...
925
926

Малышев Олег
12.01.2009, 13:32
Смотрите http:\\IP_контроллера\param.txt
Если вместо значений WRONG значит при изменении таргета не поставили загрузка символов.

mangust-77
14.01.2009, 12:57
'эту тему толком не могут просветить и в сервисных центрах дилеры Овен.Видимо сыро, не в пример вкт-7 * RS-232*ТС35i

Роман26
04.02.2009, 14:15
Я сейчас работаю над сохранением показателей датчиков в MySQL. Скажите, а можно заставить ОВЕН ПЛК 100 (прошивка 2.05.6) обращаться к PHP скрипту, подключаясь к интернету с помощью GSM модема? Веб-сервер, о котором сдесь идет речь, запускается, непосредственно, на самом PLC? Я правильно понимаю?

Olex007
07.02.2009, 22:53
вместо синусоиды (вроде она замышлялась автором)
на графике рисует горизонтальный пунктир
У меня подобное в Opera - наверное берёт param.txt из кеша.
IE ругается "Ошибка Microsoft JScript - Предполагается наличие объекта line: 1; column: 0".
Firefox пытается что-то правдоподобное делать, но вместо пол-секунды на точку рисует раз в пять секунд. При периоде сигнала в 10 секунд узнать исходную кривую трудновато - будем разбираться.

Chupakabra
12.02.2009, 17:34
Я сейчас работаю над сохранением показателей датчиков в MySQL. Скажите, а можно заставить ОВЕН ПЛК 100 (прошивка 2.05.6) обращаться к PHP скрипту, подключаясь к интернету с помощью GSM модема? Веб-сервер, о котором сдесь идет речь, запускается, непосредственно, на самом PLC? Я правильно понимаю?

Да, так сделать можно, программированием сокетов на owen, но сложновато. Нужно релизовать частично функциональность браузера, точнее написать клиент, умеющий отсылать, принимать и обрабатывать запросы GET или POST.


Веб-сервер, о котором сдесь идет речь, запускается, непосредственно, на самом PLC? Я правильно понимаю?

Верно.

Роман26
13.02.2009, 08:37
Так, а если заставить PHP скрипт обращатся к веб-серверу на ПЛК? Так, помоему, выйдет проще.

Дело только в надежности подключения ПЛК к инету через GSM модем. Кто с этим сталкивался? Что вы можете об этом сказать?

Chupakabra
13.02.2009, 11:12
Так, а если заставить PHP скрипт обращатся к веб-серверу на ПЛК? Так, помоему, выйдет проще.

Дело только в надежности подключения ПЛК к инету через GSM модем. Кто с этим сталкивался? Что вы можете об этом сказать?

Можно заставить скрипт обращаться к ПЛК, ммм... ,скажем, по Modbus. В скрипте соответственно должен быть запрограммирован хотя бы примитивный мастер(клиент) Modbus.

+ в окне браузера при запросе после выполнения скрипта будут видны самые актуальные данные.
+ уставки в контроллер тоже запишутся сразу после выполнения скрипта

- требуется знать IP адрес контроллера, т.к. он выступает в роли Modbus server. Динамические адреса, в принципе, тоже можно использовать, но для этого нужно либо иметь в модеме, либо в контроллере запрограммировать DDNS клиент (пару месяцов назад такой сам написал :), правда не для owen).
- для переодической записи в БД требуется циклически запускать скрипт опроса с помощью какого-нибудь scheduler.

Chupakabra
13.02.2009, 11:15
А у варианта, когда контроллер инициирует передачу данных, плюсы и минусы инвертируются :rolleyes:

Роман26
13.02.2009, 11:30
Задать периодичность запуска PHP скрипта - не проблема, на сервере с MySQL имеется - Cron. А вот с динамическим IP адресом будут вопросы. В случае дисконнекта он ведь сменится. Остается вопрос в надежности GSM модема и GPRS соединения. Всетаки, кто что может сказать об этом?

Малышев Олег
14.02.2009, 09:23
По итогам тестирования у Alex1963 прошивка c поддержкой GPRS/PPP пока не готова. Используйте modbus + GSM(CSD) modem. Библиотеки и готовые проекты с поддержкой модбус доступны под Linux. Уж под Win вообще проблем нет - Lectus OPC + любая скада.

Роман26
18.02.2009, 13:16
Олег, т.е. ПЛК с помощью модема просто будет дозваниваться до ОРС сервера? И никакого интернета

Малышев Олег
19.02.2009, 08:41
Да, именно так. Это рабочий вариант и насколько я знаю проблем с этим нет. Причем дозваниваться может как ПЛК так и ПК. ПЛК может быть как мастером так и слейвом модбас. Проверено с лектусом(брать последнюю версию) и matricon modbus server.

Jeck
19.02.2009, 10:40
Ну а поддержка GPRS соединения , как скоро будет?

Роман26
03.03.2009, 12:04
Кстати, может быть кто использовал OPC сервер под Linux? чтобы сохранять данные в МуСкуль

Малышев Олег
03.03.2009, 12:51
Ищите pv browser + rllib

tolik777
10.04.2009, 13:45
Подскажите, контроллера Овен у меня пока нет. Хочу купить, но прежде узнать подойдет ли он под мою задачау:
у меня есть aDSL-линия с динамическим IP адресом. Такой инет наверное у большинства сейчас. Можно ли подключить контроллер Овен к Ethernet-порту моего aDSL модема (D-Link 2540), настроить интернет на контроллере (локальный IP адрес, маску, шлюз, DNS-сервер) и с контроллера отправить данные POST или GET-запросом?

Филоненко Владислав
10.04.2009, 17:00
Если ПЛК выступает как клиент (аналогично обычному браузеру на ПК), то почему бы и нет.
Иначе нужно либо статический IP роутера, либо регистрацию на DDNS настраивать.

nikita
16.05.2009, 10:02
Вопрос: допустим, есть статический IP роутера, но у плк ведь локальные адрес, шлюз и маска, подскажите пожалуйста, нужно настраивать именно adsl-модем, чтобы плк был виден во внешней сети? И как:)

Роман26
11.06.2009, 12:34
Подскажите, можно ли заставить ПЛК ОВЕН выполнять POST запросы к PHP скриптам, аналогично обычному web браузеру, к примеру вот так:

http://10.0.6.11/plc.php?var1=123&var2=321&var3=text

10.0.6.11 - в примере - это ip адрес web-сервера подключенного к плк через Ethernet.

Спасибо!

Малышев Олег
11.06.2009, 13:20
Почему бы и нет - создайте в стандартном браузере нужный запрос, посмотрите содержимое пакета TCP, после чего формируйте и засылайте пакет через SysLibSocket.

Роман26
11.06.2009, 14:05
а если наоборот? чтобы Php скрипт работающий на вышеупомянутом сервере обращался к переменным в плк.

Малышев Олег
11.06.2009, 19:23
тоже не проблема

Роман26
15.06.2009, 09:03
олег, но об этом нигде не написано! поделись пожалуйста знаниями)

Малышев Олег
15.06.2009, 12:17
Сокровенных знаний здесь нет. Используем стандартные знания TCP/IP.
Примеров в инете море - пишем с учетом циклического вызова!!!

На вскидку так-
packet_sz:=1000; (* Размер пакета*)
sz:=1000;

if my_rtrig.Q then
SysSockCreate..
SysSockConnect..
sz:=SysSockSend..
else
if sz<packet_buf then
sz:=sz+SysSockSend..
end_if
end_if

Роман26
26.06.2009, 13:54
Если не затруднит, можно поподробнее?

Kostyanskiu
29.10.2009, 19:43
Скажите, пожалуйста, возможно ли запустить данный сервер, если нет ПЛК (работаю в режиме эмуляции)? Сам пытался-не смог)

Филоненко Владислав
30.10.2009, 10:06
Нельзя. SymLib в режиме симуляции не работает. А сокеты- работают.

alexxx
09.11.2009, 19:48
Здравствуйте. Никак не могу настроить WEB-сервер на ПЛК-150 U.M.
Уважаемые знатоки програмирования, пожалуйста, пришлите мне на почту alex067709[собака]rambler.ru проект для моего контроллера с рабочим сервером, буду вам очень благодарен. А то не могу настроить никак... Импортирую из выложенного в начале проекта всё, кроме конфигурации. Из оперы захожу, а мне пишут, что сервер отклонил входящий запрос.. :(

Малышев Олег
09.11.2009, 20:21
а файл index.html на диск плк записан?

alexxx
09.11.2009, 21:49
да, все 6 файлов в плк записал.

Малышев Олег
10.11.2009, 10:34
посмотрите, что отвечает сервер с помощью любого снифера.

Crusash
12.01.2010, 16:25
здравствуйте!!!
попробовал ваш пример http://owen.ru/forum/attachment.php?attachmentid=894&d=1229350120
залил всё в плк, браузер страницы читает, видит состояние входов , а вот график показывать не хочет
выдаёт ошибку:
....
Ошибка синтаксического анализа XML: неправильный
Адрес: http://192.168.0.130/RTGraph.svg
Строка 59, символ 8: <p2;fill:none;}
-------^
....
смотрю чтоже он получает, а там через каждый килобайт повторяется это:
�b��&#200;����.SOCKET_AF_HYLINK����0������D��b�� ®����.SOCKET_AF_IMPLINK�������,������D��b��¬� ���.SOCKET_AF_INET������0������D��b��&#224;����.S OCKET_AF_INET_BSD������4������D��b��&#226;����.SOC KET_AF_INET_STREAMS������,������D��b��&#216;����.S OCKET_AF_IPX�������,������D��b��¶����.SOCKET_ AF_ISO�������,������D��b��&#198;����.SOCKET_AF_LAT �������,������D��b��&#206;����.SOCKET_AF_LINK���� ��,������D��b��&#168;����.SOCKET_AF_LOCAL�����,��� ���D��b��&#222;����.SOCKET_AF_MAX�������(������D� �b��&#180;����.SOCKET_AF_NS����,������D��b��&#184;��� �.SOCKET_AF_OSI�������,������D��b��°����.SOC KET_AF_PUP�������,������D��b��&#204;����.SOCKET_AF _ROUTE�����,������D��b��&#218;����.SOCKET_AF_SIP�� �����,������D��b��&#192;����.SOCKET_AF_SNA������� ,������D��b��&#170;����.SOCKET_AF_UNIX������,���� ��D��b��&#162;����.SOCKET_AF_UNSPEC����(�������D�� b��@���.SOCKET_DGRAM����0�������D��b�� ���.SOCKET_FD_SETSIZE�������,�������D��b��œ� ��.SOCKET_FIONBIO������,�������D��b��˜���.SO CKET_FIONREAD�����0������D��b��P���.SOCKET_I NADDR_ANY�������4������D��b��X���.SOCKET_INA DDR_BROADCAST�����4������D��b��T���.SOCKET_I NADDR_LOOPBACK������0������D��b��\���.SOCKET _INADDR_NONE������,�������D��b��¤����.SOCKET_I NVALID������0�������D��b��l���.SOCKET_IPPROTO _GGP������0�������D��b��d���.SOCKET_IPPROTO_I CMP�����0�������D��b��|���.SOCKET_IPPROTO_IDP ������0�������D��b��h���.SOCKET_IPPROTO_IGMP� ����0�������D��b��`���.SOCKET_IPPROTO_IP���� ���0�������D��b��ˆ���.SOCKET_IPPROTO_MAX����� �0�������D��b��€���.SOCKET_IPPROTO_ND�������0 �������D��b��t���.SOCKET_IPPROTO_PUP������0�� �����D��b��„���.SOCKET_IPPROTO_RAW������0���� ���D��b��p���.SOCKET_IPPROTO_TCP������0������ �D��b��x���.SOCKET_IPPROTO_UDP������0�������D ��b��”���.SOCKET_MSG_DONTROUTE����,�������D�� b��Œ���.SOCKET_MSG_OOB������,�������D��b��� ���.SOCKET_MSG_PEEK�����0������D��b��&#220;����. SOCKET_pseudo_AF_PIP����4������D��b��&#214;����.SO CKET_pseudo_AF_RTIP�������0������D��b��&#208;����. SOCKET_pseudo_AF_XTP����(�������D��b��D���.SO CKET_RAW������(�������D��b��H���.SOCKET_RDM�� ����,�������D��b��L���.SOCKET_SEQPACKET����0 �������D��b��&#236;����.SOCKET_SO_ACCEPTCONN����0�� �����D��b��&#252;����.SOCKET_SO_BROADCAST�����,���� ���D��b��&#232;����.SOCKET_SO_DEBUG�����0�������D�� b��&#248;����.SOCKET_SO_DONTROUTE�����,�������D��b ��(���.SOCKET_SO_ERROR�����0�������D��b��&#244;�� ��.SOCKET_SO_KEEPALIVE�����,�������D��b���� �.SOCKET_SO_LINGER����0�������D��b�����.SOCK ET_SO_OOBINLINE�����0�������D��b��0���.SOCKET _SO_PROTOTYPE�����,�������D��b�����.SOCKET_S O_RCVBUF����0�������D��b�����.SOCKET_SO_RCVL OWAT������0�������D��b��$���.SOCKET_SO_RCVTIM EO������0�������D��b��&#240;����.SOCKET_SO_REUSEADD R�����0�������D��b�� ���.SOCKET_SO_REUSEPORT�����,�������D��b��� ��.SOCKET_SO_SNDBUF����0�������D��b�����.SO CKET_SO_SNDLOWAT������0�������D��b�� ���.SOCKET_SO_SNDTIMEO������,�������D��b��,� ��.SOCKET_SO_TYPE������4�������D��b������.SO CKET_SO_USELOOPBACK�������(������D��b��&#228;����. SOCKET_SOL������,�������D��b��<���.SOCKET_STREAM�������0�������D��b��8���. SOCKET_TCP_MAXSEG�������0�������D��b��4���.SO CKET_TCP_NODELAY�������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� ������������������� />

в чём может быть проблема?
в первый раз с Вебом сталкиваюсь...

Филоненко Владислав
12.01.2010, 16:53
дайте более подробную информацию о плк, проекте и пр.

Crusash
12.01.2010, 17:40
ну проект как и сказал ранее из ваших примеров переписанный под плк150ум прошивка 2.10.7 таргет 2.10

Olex007
15.03.2010, 16:52
Прошу переместить в примеры программ
-----------------------------
Программа тестировалась под FireFox, Opera, GoogleChrome, Safary.
Под IE не работает по причине несовместимости IE со стандартами W3C

Это скорее кириллица не соответствует :)

Уберите коменты на русском из скриптовых файлов и буде у Вас с IE любовь и взаимопонимание ;)
(имеется ввиду проект web2.rar)

А еще лучше пожмите их "YUI Compressor" (или чем другим) перед загрузкой в PLC, чтоб не вручную коменты удалять.
Заодно время отклика уменьшится. Только тег OWENSKIP в начале файлов верните на место...

P.S. кириллица амнистирована - какая-то бяка сидит в самом файле realTimeChart.js - после "YUI Compressor" IE8 нормально его кушает - будем искать...

kristow
29.04.2011, 14:06
Добрый день!
я открывал проекты с web-страницами для ПЛК150...
А можно создать проект для ПЛК100-R-M, чтобы там отображались входы контроллера и реле????:confused: :confused: :confused:

И еще наводящий вопрос:
Я понял, что можно вывести параметры из ПЛК на страничку html, которая заливается в контроллер... А можно ли сделать активный элемент на управление реле например...??:confused: И как-то проводить авторизацию пользователя...?:confused: Простоя хотел повесить контроллер в инет, чтобы можно было удаленно наблюдать за ним, ну и если это возможно - удаленно управлять...;) Поэтому даже на примитивном уровне, была бы кстати авторизация...:rolleyes:

Помогите начать, а я буду выкладывать результаты своих деяний...:)

kristow
24.05.2011, 19:40
Почитав мануалы немного, правда так до конца и не разобрался... Но решение web интерфейса для ПЛК100 можно сделать двумя способами:

1) это как было выложено в примере (web.rar), где визуализация web страницы сделали с помощью библиотек, скриптов и написанного большого кода на вывод 6-ти дискретных входов и 6-ти эмуляторов значений...
запустил для теста на своем контроллере, все прекрасно работает... Правда вот переделать проет под свои нужды оказалось ой как сложно :( .

2) это описанное в мануале codesys визуализация... Которая мне понравилась в простоте её создания... Правда с выводом значений в web-страницу пока еще не тестил...

Подскажите, может кто пробовал мой второй вариант при создании визуализации, можно создать кнопки на управление реле и их состояниями.... А можно ли через xml запросы codesys через web-интерфейс управлять реле контроллера???? :confused:

RV9WFJ
27.05.2011, 13:28
У овна вроде как библиотека web-сервера не поддержана, да и платная она. Поэтому и такой огород с первым вариантом.

kanadchikov
09.07.2011, 18:40
Уважаемые, а не подскажите? Как сделать, чтобы данные на web - страничке периодически обновлялись?

kanadchikov
09.07.2011, 21:42
Спасибо! Очень интересная тема!

kanadchikov
13.07.2011, 16:05
с получения данных из контроллера вроде все понятно, а вот как быть с посылкой данных в контроллер? Кто-нибудь примером поделится?

Логвиненко Андрей
19.07.2011, 08:57
с получения данных из контроллера вроде все понятно, а вот как быть с посылкой данных в контроллер? Кто-нибудь примером поделится?
Смотрите внимательно пример, там все есть.

LopAmetparror
23.03.2012, 15:53
Drop in on us at the moment to grasp more knowledge and facts in the matter of By us at times to grasp more facts and facts at all events wizyt&#243;wki (http://www.wizytowki-online.info.pl)

aivchiter
01.04.2013, 23:00
ну проект как и сказал ранее из ваших примеров переписанный под плк150ум прошивка 2.10.7 таргет 2.10
Здравствуйте. Мне необходимо выполнить задачу, похожую на вашу, только без графика, но с красивой страничкой данных. Посмотрел ваш пример и возник основной вопрос. В codesys я начинающий.
Как происходит передача данных в таблицу html? Они просто записываются как в любой файл, не увидел реализации этого в примере (по причине малых знаний, очевидно). Т.е. я беру, открываю файл, ищу место куда мне надо записать какие-то данные, записываю их и выхожу. Или какой-то другой принцип реализован. Если такой, то где отвечающие за это строки в программе. Буду благодарен за помощь.
P/s/ Интересна сама концепция этого. И строчки за это отвечающие?

alexval2006
08.08.2013, 18:35
Подскажите пожалуйста а как мне к web страничке приладит кнопку вкл/выкл (управление дискретным выходом плк) и индикатор состояния входа плк в виде лампочки . А то что делать с этими строковыми переменными я попробовал из них word сделать а потом сравнить с константой не вышло что то. В общем был бы рад увидеть примерчик

Scream
26.04.2014, 07:09
Подскажите пожалуйста а как мне к web страничке приладит кнопку вкл/выкл (управление дискретным выходом плк) и индикатор состояния входа плк в виде лампочки . А то что делать с этими строковыми переменными я попробовал из них word сделать а потом сравнить с константой не вышло что то. В общем был бы рад увидеть примерчик

Вам html надо б сначало почитать.

Адрей
01.06.2014, 10:21
<owen><owen>Здравствуйте.
Уважаемые специалисты web программирования, есть к вам вопросы от чайника по поводу данного примера реализации веб сервера.
Вопросы:
1. Из html <owen><.ai1><owen> это class в данном примере либо это ссылка на переменную string?
2. Если я правильно понял действующий пример не корректно работает с записью через форму так ли это?
3. В примере с index.html после попытки смены сетевых параметров плк перезагружается, тестировал на ПЛК 100км, ПЛК150ИМ, ПЛК110-60 прошивки свежие в чем может быть дело? (на странице отображается значения переменных но не происходит изменений сет. настроек через форму либо форма не работает, либо значение косячно преобразоваются в IP в ПЛК не ясна причина)
4. Неясен процесс обмена на данном сервере с формой на ACTION="change_ip"? (не нашёл "change_ip" в ПЛК для обработки, или ПЛК напрямую видит ".ip1" и её меняет на name=".ip1")




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /><title>OWEN Embedded WEB Server</title><style type="text/css"></style></head><body><FORM METHOD=POST ACTION="change_ip"><table><tr><td>IP Адрес</td><td><input type="text" SIZE=3 name=".t1" value="<OWEN>.t1</OWEN>"></td></tr>
<tr><td colspan="7"><INPUT TYPE="submit" VALUE="Послать"> <INPUT TYPE="reset" VALUE="Сбросить"></td></tr></table></FORM></body></html>


</owen></owen></owen></owen>

Адрей
01.06.2014, 12:40
Андрей, можно ли увидеть исходный код странички,которая в браузере, чтоб для начала понять проблемы с формой в браузере или плк не правильно ведет обработку
Страницу скинул выше.

Адрей
01.06.2014, 13:38
Через телефон неоткрывалось
это точно вывод браузера или Вы скинули index.html который в плк заливаете? Смущает конечно .t1 в плк видимо должно подставляться осмысленное имя
Страница index.html которую заливаю в плк. В плк глобал имя t1 string 4 символа.

Адрей
01.06.2014, 21:29
Да, сейчас грузанул первоначальный проект,сам проект для плк еще не открывал,посмотрел только страничку. То что там форма без какого то урля, может означать что браузер просто обратится на туже страницу, а плк приняв запрос,читает аргументы в строке запроса выполняет определенные действия, но я бы вместо формы использовал яваскрипт с аяксом
Вот и я тоже думаю на счет JS вот только в моей голове не укладывается что куда надо направлять непонятен сам процесс работы сервера. Указанный код выше стучится в change_ip которого нет в ПЛК броузер отвечает отсутствием файла. Допустим мы формой стучимся на JS тот в свою очередь делает присваивание переменой в плк по су те должно так а на самом деле ...??

Адрей
02.06.2014, 13:01
Наводит на мысль не вот этот ли код за это отвечает ??
Вырезка из ФБ w3service

<f_size then
<f_size then
IF wanna_form THEN
IF have_vars THEN
header:=vars_str;
END_IF
ExecHandler(header);
IF have_vars THEN
(*
Здесь можно вставить callback на обработку переменных
*)
;
END_IF
wanna_form:=0;
IF must_change_ip THEN
file_name:='<HTML><BODY>IP changed <SCRIPT TYPE="text/javascript"><!--VAR bl = new backlink();bl.write();//--></SCRIPT></BODY></HTML>';
ELSE
IF have_vars THEN
file_name:=DWORD_TO_STRING(res_of);
have_vars:=FALSE;
ELSE
file_name:='<HTML><BODY>form executed <SCRIPT TYPE="text/javascript"><!--VAR bl = new backlink();bl.write();//--></SCRIPT></BODY></HTML>';
END_IF


END_IF
f_size:=LEN(file_name);
header:=MakeHeader('','',DWORD_TO_WORD(f_size));
SysMemMove(rcv_snd_buf,ADR(header),LEN(header));
SysMemMove(rcv_snd_buf+INT_TO_DWORD(LEN(Header)),A DR(file_name),f_size);
f_size:=f_size +LEN(header);
(* что послали? см
SysMemCpy(ADR(header),rcv_snd_buf+f_size-255,255);
*)
gg:=SysSockSend(sock_acc,rcv_snd_buf,f_size,0);
IF gg<f_size THEN
web_stat:=W3S_SEND;
END_IF
rcv_bytes_cnt:=0;
RETURN;
END_IF
<f_size then

Тогда не ясно про callback она запускает что? функцию JS или может произвести присвоение сразу в переменную ПЛК.</f_size></f_size></f_size>

Адрей
03.06.2014, 12:44
Спасибо capzap за принятие в дискуссии. С формой разобрался есть ограничение по количеству передачи переменных. Но сервер придется корректировать под свой проект. Спасибо ОВЕН за серверок.

Адрей
03.06.2014, 13:56
Какое ограничение? GET запрос не должен превышать 256 байт, а ответ то до1,5кБ должен возвращаться в браузер
Условно не более 20 переменных 20-80 байт.

Адрей
03.06.2014, 15:00
Может Вы не задействовали изменение в заголовке документа, поэтому страница больше определенного объема не загружается или я не понял суть проблемы
Нет страница грузится нормально но я ее не делаю больше 3 КБ в принципе 3кб хватает если ручками писать. Но сервер нужно оптемизировать это точно буду им заниматься.

Адрей
03.06.2014, 16:48
3к много в один кадр не поместится, если использовать мой подход,то все статические элементы загружаются при открытии страницы,а далее подгружаются только данные
Да, я уже заметил, это из вашего примера, так оно будет рациональней и оперативней.

Адрей
03.06.2014, 17:15
кстати, мой пример то работает? А то я далеко от дома, сам не проверял, то то загрузил
Пробовал но он ругается что то в нем не хватает.

Адрей
04.06.2014, 21:28
библиотеки или переменные, я глобальные не экспортировал, но они там в функции вставляются в строки

експорт подправил, правда температура теперь будет статичной
Пытался запустить ваш сервер молчит как рыба. В проекте ошибок нет компилируется, да я не нашёл ссылку ExtractFileName:='index.html';на стартовою страницу в проекте.

Адрей
04.06.2014, 21:52
Прошу переместить в примеры программ
-----------------------------
Программа тестировалась под FireFox, Opera, GoogleChrome, Safary.
Под IE не работает по причине несовместимости IE со стандартами W3C
При отправки через форму на сервер четырех переменных .ip1, .ip2, .ip, ip4 сервером не читается .ip1 из-за чего это происходит? В снифере видно как броузер отправляет 4 параметра. Думаю есть касяк с обрезкой на сервере как его устранить?

Адрей
20.06.2014, 12:01
Появились новые вопросы:
Библиотека jquery прекрасно работает с сервером, данные передаются, остался вопрос о безопасности передачи данных на сервер куда копать?

alkoizh
15.11.2014, 00:23
в пример на первой странице добавил ещё 2 входа, но в Web-интерфейсе не отображаются состояния входов 7,8, точки чёрного цвета, при наведении курсора "wrong" (ПЛК-100, теперь 8 входов в Web-интерфейсе).
Как, где "оживить " 7 и 8 вход?
И управление выходами нужны.
Спасибо.

Мамонов Михаил
19.01.2015, 16:08
Раньше уже спрашивали, но ответа не было - можно ли сделать какую-либо авторизацию на web-сервере? Нужен доступ из интернета, но совсем уж без защиты делать не хочется..

Krendeleeev
20.10.2015, 17:17
Ответ опять же-ж . воспользуюся vpn и ненужна будет авторизация. сеть будет просто закрыта от внешних сетей... vpn- виртуальная персональная сеть. программы для vpn есть для всех операционных сетей. Заодно избавишься от проблемы подключения к ip адресам . но есть минус в том что требуется минимум один компьютер с выделенным ip адресом, неважно где этот компьютер (можно в германии купить vpn сервер. можно домашний или офисный интернет использовать для размещения сервера).

Krendeleeev
24.12.2015, 17:27
Оказывается можно и в роутерах некоторых VPN и DynDNS поднять .
Это нас избавляет от необходимости в пароле , и адрес сервера вроде как будет всегда один .

Виталий_НСК
07.04.2016, 09:30
Добрый день! Попытался поиграться с WEB-сервером ПЛК100. Интересная штука получается. Добавляем глобальные переменные i0..i13, создаем символьный файл. Описываем имена переменных в файле index.html. Читаем - читается отлично. Пытаемся записать - записываются значения переменных всех кроме первой (самой верхней в таблице). Меняем количество переменных - добавляем или удаляем, все равно первая переменная, какая бы она ни была, не записывается. Файл конфигурации каждый раз меняем. В чем может быть подвох? Может я что-то не так делаю? Подскажите, плиз!

darkwolf
03.12.2016, 15:40
сначала воодушевился идеей web интерфейса, а в результате пока только ловлю неполадки, надеюсь кто -нибуть из разобравшихся ответят в этой старой теме.использую плк 100р-м. Возникли вопросы:
1. и при ручном обновлении страницы и при наличии строки обновления страницы в коде файла index.htm страница при обновлении браузер страницы не находит. пробовал увеличить количество сокетов- ситуация не меняется.
2. Просьба пояснить механизм работы с кнопками- мне необходимо вставить 7 кнопок управления на страницу- неразобрался как связать кнопку на форме и булевскую переменную в приложении.

darkwolf
03.12.2016, 19:08
на основе первого примера в теме.
единственное пока какая проблема решилась это упростил заголовок первые две строчки убрав:

оставив простопустой тег html

.иначе при запросе страницы контроллер ребутился

Crusash
25.08.2017, 16:24
библиотеки или переменные, я глобальные не экспортировал, но они там в функции вставляются в строки

експорт подправил, правда температура теперь будет статичной

Здравствуйте, очень хочется разобраться, но не получается завести ваш проект.

первую посылку принимает, обрабатывает как 'GET / HTTP/1.1$R$N' , но отравить у него получается только заголовок.
а вот второй запрос вообще принимать не хочет, начинает принимать только после сброса контроллера, соответственно только один раз, хотя TcpReceiveData также опрашивает сокет.

Crusash
28.08.2017, 19:43
возможно и так, файл был написан для теста, а не для работы. Во вложении еще один тестовый проект,он должен работать с неоднократными запросами, правда написан для WinPLC, есть отличия в применении бибки от овеновских контроллеров

на PLCwinNT заработать не захотел, не проходит bind и listen.

загрузил в плк150, заработал, но почему то ведет себя также как предыдущий пример - первую посылку принимает и отправляет "Hello, word", а последующие посылки SysSockRecv возвращает всегда ноль. До тех пор пока не сбросишь ПЛК или принудительно после отправки посылки не закроешь сокет.

Crusash
29.08.2017, 18:16
при захвате видео, почему то клава отваливается

даже не знаю, не хочет у меня WinPLCnt как у вас работать и все тут. Хендл получает а Bind не проходит.
Может потому что у меня библиотека и платформа новее.

Ну ладно, главное на плк пашет, буду на нем разбираться...

murdemon
29.06.2018, 16:05
Все ссылки битые. SymLib. Если кто поделится, буду очень признателен. Спасибо

murdemon
29.06.2018, 16:19
Нашел (во вложении)

Вольд
29.06.2018, 20:27
Нашел (во вложении)

А что это за библиотека ?

murdemon
29.06.2018, 21:36
для web сервера на ПЛК 100/150. Но там дичь. Не WebVisu не разу.

proffy
13.03.2019, 21:53
Перезалейте библиотеки и проект с первой страницы. не качается.
И огромная просьба переконфигурируйте проект для работы с контроллером плк 160 либо дайте ссылку где это можно прочитать.
мне нужно что бы отображалось состояние портов ввода вывода

Евгений Кислов
14.03.2019, 06:27
Перезалейте библиотеки и проект с первой страницы. не качается.
И огромная просьба переконфигурируйте проект для работы с контроллером плк 160 либо дайте ссылку где это можно прочитать.
мне нужно что бы отображалось состояние портов ввода вывода

Обновил ссылку в первом сообщении темы.

proffy
17.03.2019, 19:46
установил библиотеки. залил файли и проект с первой страницы. захожу с помощью хрома на айпишник плк160 и ничего нет. что делать? библиотеки нашел в другом месте. ваша ссылка содержит только проект

proffy
19.03.2019, 10:04
установил библиотеки. залил файли и проект с первой страницы. захожу с помощью хрома на айпишник плк160 и ничего нет. что делать?

После танцев с бубном запустил ваш сервер. теперь вопрос. напишите пример кода html для отображения и отправки переменных из контроллера на страницу и со страницы на контроллер

proffy
19.03.2019, 22:25
я так понимаю это получение данных с плк
<td><input type="text" SIZE=3 name=".ip" value="<OWEN>.ip1</OWEN>">&nbsp;.&nbsp;</td>
а это запись
<td colspan="7"><INPUT TYPE="submit" VALUE="Послать"> <INPUT TYPE="reset" VALUE="Сбросить"></td>

proffy
24.03.2019, 23:46
спецы овновские. ау. ответьте на вопросы или хотя бы кого-то порекомендуйте

anubiar
14.05.2019, 18:26
После танцев с бубном запустил ваш сервер. теперь вопрос. напишите пример кода html для отображения и отправки переменных из контроллера на страницу и со страницы на контроллер

Что за танец? Что за бубен? Можете поподробней?

lamphuongk
15.01.2021, 11:23
По итогам тестирования у Alex1963 прошивка c поддержкой GPRS/PPP пока не готова. Используйте modbus + GSM(CSD) modem. Библиотеки и готовые проекты с поддержкой модбус доступны под Linux. Уж под Win вообще проблем нет - Lectus OPC + любая скада.
Barrier