Прошу переместить в примеры программ
-----------------------------
Программа тестировалась под FireFox, Opera, GoogleChrome, Safary.
Под IE не работает по причине несовместимости IE со стандартами W3C
Скачать пример
Прошу переместить в примеры программ
-----------------------------
Программа тестировалась под FireFox, Opera, GoogleChrome, Safary.
Под IE не работает по причине несовместимости IE со стандартами W3C
Скачать пример
Последний раз редактировалось A.Simonov; 13.04.2022 в 11:41. Причина: Добавление библиотек
Не вполне понял про POST. Также не понял, зачем 3 сервера? Чтобы одновременно обслуживать 3 клиентов? Но, в конце концов, это детали.
А вот на вопрос, как что-либо подобное заставить работать через RS-232+модем, я вразумительного ответа так и не получил (тема Овен ПЛК + TCP/IP) . Какая версия прошивки нужна? Что и где крутить для конфигурации?
Можно, через поддержку модемного доступа в Интернет, к-я как раз сейчас интенсивно у нас тестируется. Но скорость, естественно, на уровне модема...
1) Зачем N экземпляров сервера? Если на странице N фреймов браузер будет пытаться читать их одновременно из разных файлов. Старый пример веб сервера не порадует браузер. А почему бы нескольким клиентам не раздавать данные.
2) См ЛС.
Обнаруживается еще и такая проблема (это видно уже в примере). Допустим, нужно передать массив. Тут мы упираемся в кривой интерфейс symlib.
А в CodeSys предусмотрена аналогичная библиотека SysLibSymbols. В ней все более удобно. Имеется единственная функция, возвращающая адрес символа. Хочешь читай, хочешь пиши, хочешь одну переменную, хочешь - массив. Причем адреса можно получать при инициализации и не тратить время на манипуляции с символами постоянно. Конечно, нужна еще SysLibGetSymbolType, но тип символа должен возвращаться как enum (т. е. int!), чтобы использовать case, а не сравнение строк. Ну, и для полноты еще неплохо бы SysLibEnumSymbols, последовательно возвращающую все доступные символы, т. к. в некоторых случаях, видимо, будет удобно отправлять их все одним махом, например по "GET all_vars".
Последний раз редактировалось alex1963; 17.12.2008 в 12:54.
Забавно, возможно я не в курсе, и давно такая замечательная библиотека есть? Если не трудно зашлите ее. К сожалению, она не поддержана на нашем контроллере.
Я, собственно, про усовершенствование интерфейса доступа к переменным по именам. А библиотеки Sys..., как я понимаю, для каждого контроллера свои. То, что в CodeSys, наверное, для Soft-PLC (компьютера). Впрочем, Вам лучше знать
Последний раз редактировалось alex1963; 17.12.2008 в 15:58.
symlib была нами сделана, потому что для embeded систем символы из прикладной программы вообще не поддерживались. Хотя в недрах исходников были куски, реализующие доступ, то ли дело бросили, то ли не хотели создавать конкуренции Soft-PLC. Дело тёмное.
Так что если пришлёте библиотеку SysLibSymbols - мы, в свою очередь, постараемся её поддержать (если это будет возможно).
Да, похоже, библиотека эта чисто виртуальная сущность - при ближайшем рассмотрении ее нет, есть только 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 для первого обращения */
Хелп внимательно читали? Данная биб-ка реализована для больших ПЛК высшей ценовой категории на базе системы исполнения CSP32F. В них она и работает. В большинстве ПЛК эконом класса на базе CSP32E (embedded) обычно нет даже файловой системы! Тут ее в принципе нет смысла поддерживать.
Для ПЛК Овен вполне можно реализовать предложенный вариант. Только лучше назвать эту биб-ку иначе, дабы не путаться.