Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 22

Тема: ошибки в примерах ...

  1. #11

    По умолчанию


    * использование DHTML для динамического изменения содержания страницы;

    И ЭТО вы назваете разумной альтернативой вместо перезагрузки малюсенькой страницы.


    Люди, критиковать - самое простое. Понять почему так сделано - уже труднее. А самое трудное - участвовать в разработке.
    ПЛК состоялся как прибор и обсуждать его особенности бессмысленно. Никто не пойдёт на из изменения (тем более что это не ошибки), используется уже слишком много кода, чтобы менять что-либо.

    А вот поучаствовать в обсуждении новых приборов (в т.ч. и ПЛК) - вот тут все ваши пожелания, замечания и предложения будут очень актуальны.

  2. #12

    По умолчанию то Alex

    работает, но в текущем варианте программы соединение закрывается после каждого обмена, похоже тайм аутом, и поэтому в С программе для очередной посылки вновь устанавливаю соединение:


    pSocket = new CClientSocket(this);
    pSocket->Create();
    pSocket->Connect(m_sAdr, m_port);
    pSocket->Send("HELLO_PLC", 9);
    - выполняется при создании окна и установлении связи


    pSocket->Connect(m_sAdr, m_port);
    pSocket->Send( "SOUND", 5 );
    - при каждой посылке данных



    ... да еще режим сокета в плк ставлю другой:

    SysSockIoctl(sock_acc,SOCKET_FIONREAD,ADR(param_ct rl));



    Владислав! Да мы собственно не критикуем, а пытаемся выяснить как это работает! Документация весьма скудная, а попытки притащить знания из других платформ натыкаются на факт, что в ПЛК100 функции реализованы не совсем так, как в аналогичных системах. Понятно что особенности реализации неизбежны, но хотелось бы иметь список этих особенностей )))) .... замечательно что есть форум, на котором почти всегда можно получить исчерпывающий и быстрый ответ, но хотелось чтоб эти ответы систематизировались и объединились в один документ.


    А по новым разработкам: хочу внешние прерывания с откликом в микросекунды, ШИМ внутри полупериода сети с привязкой к нулю и съемный носитель памяти для архивов и настроек. В идеале наличие быстрого шинного интерфейса, с соответствующими модулями ввода - вывода. МДВВ через 485 хорошо, но медленно.
    Последний раз редактировалось Дмитрий Артюховский; 22.01.2009 в 03:05.

  3. #13

    По умолчанию

    20 мкс прерывание уже в 110.
    ШИМ - для таких целей частотник - куда более правильное решение. ПЛК должен руководить "плотником", а не его рукой, забивающей гвозди. ШИМ такого уровня - уже аппаратное решение, если хочется точности и стабильности. Один узел детектирования нуля с ФАПЧ и устойчивостью к шумам - сложное устройство.
    Шинная архитектура интенсивно разрабатывается. Есть обнадёживающие результаты.

  4. #14

    По умолчанию

    Продираем глаза и ищем в примере HTTPRequst - нашли - прекрасно - вот вам и AJAX. Реально перегружается только param.txt.
    На мой взгляд тоже расточительно по ресурсам процессора использовать ОВЕН ПЛК в качестве сервера удаленного доступа и web сервера. Можно купить обычный комп поставить туда SP RTE и дополнителные платы ввода-вывода. За какие - то смешные - 3-5тыс евро у вас нагрузка на процессор упадет до 1-2 процентов.

  5. #15

    По умолчанию про ШИМ...

    Понятно, что это должен быть аппаратный модуль. Частотник это хорошо, но для систем, аналогичных "умному дому" хочется иметь простенький диммер! Все шим модули овена заточены под печки, а как хочется порегулировать яркость лампочки ))) Есть еще коллекторные двигатели, которыми удобно управлять одним симистором. Можно говорить что связка простенький ПЧ + асинх.двигатель по цене не много выше коллекторника... и что шуметь симистор с КД будет изрядно, это так, но потребительские свойства привода с КД все-таки выше чем простые ПЧ. Чтобы дойти до параметров коллекторного двигателя нужен хотя бы бездатчиковый вектор, а не просто U/f, пусть и с подьемами характеристики. Да и выводов контроллера займеться намного больше. Может быть реализовать такой шим в качестве внешнего модуля с 485 интерфейсом, в части применений это решит задачу.


    .... увидел платки подключения выводов к контроллеру и согласования с ТТЛ!!! оч. здорово, и нужно - побег покупать!!!

  6. #16

    По умолчанию

    Филоненко Владислав, ну почему Вы в ответ на вполне конкретные вопросы и замечания все время начинаете считать чужие гигабайты, гигагерцы и килобаксы? "Вот поотрубал бы все библиотеки..." - это Ваше право. Вы (фирма "Овен"), как производитель можете выбрать любую линию поведения в диапазоне от "потребитель всегда прав" до "вас много, а я один". Но только от этого будет зависеть объем продаж . Поэтому Вы и библиотеки не отрубаете, и ПЛК продаете за 7000р., а не за $7000, а вовсе не по особой доброте души. Так надо спасибо говорить пользователям, которые находят ошибки или ухитряются пользоваться некоторыми возможностями без нормальной документации. Причем большая часть замечаний вовсе не требует цеплять в ПЛК новый процессор или "2 ГБ ОЗУ" - речь идет о достаточно безболезненной коррекции ПО. И не я выкладывал на форум пример Веб-сервера и др...

    Указатель в ReadValueTag - это адрес ПОЛЬЗОВАТЕЛЬСКОГО буфера. Сохранять и использовать его бессмысленно. Речь шла об адресе переменной в программе. Насчет массивов - если x: array [0..100] of dword и adr(x[0])=20000, то разве не будет adr(x[1])=20004 и т.д. Вопрос - как узнать adr(x[0]) по имени "x".

    AJAX работает в броузере, он ничего особенного не требует на сервере. Наоборот, его использование НЕ ТРЕБУЕТ парсить 100кБ текста в поисках волшебного слова ОВЕН. И да, он уже используется в примере для графика. А то, что нормальный TCP/IP и небольшой HTML сервер при правильной реализации вполне по силу ПЛК доказывает пример ADSL-модемов - вряд ли эти штуки за 600р. имеют большую вычислительную мощность, чем ПЛК.

    Ответы ничем разделять не нужно, потому что в других реализациях в буфере сокета несколько ответов просто быть не может - сокет после ответа закрывается. Вопрос был именно о том, почему у Овена не так - создание сокета занимает много времени?
    Последний раз редактировалось alex1963; 22.01.2009 в 17:10.

  7. #17

    По умолчанию

    Вопросы выглядят несколько иначе. Вспоминается обсуждение на abok. Начали с "какая гадость эта ваша заливная рыба..." а оказалось человек в коробочке 10х15х10 кабель найти не мог. 3 дня искал. Ложки нашли, но заголовок месяца 3 висел в топе. Помогать и отвечать на вопросы я никогда не отказываюсь.

    Про сокеты - Есть кусок памяти под 20 сокетов. Он 1 раз в жизни ПЛК выделяется. И что бы не делать - память не фрагментируется, как при динамическом выделении.
    Про ответ - т.е. каждый раз, когда надо опросить сервер - открывать сокет? Web-брайзер, с динамическим числом пользователей - очень специфическая задача. Да и то с 3-х компьютеров 1 ПЛК с 1 выделенным сокетом прекрасно можно опрашивать. Проверяли.
    Описанная Вами модель хороша для больших операционок. 1 сокет - 1 поток.
    В ПЛК нет большой операционки, т.к. она много потребляет ресурсов, даже с RT-расширениями.

    Про символы уточню. Указатель там, по памяти, возвращался.
    Последний раз редактировалось Филоненко Владислав; 22.01.2009 в 17:59.

  8. #18

    По умолчанию

    Про символы - т.к. ПЛК поддерживает online change, и адреса переменных при этом могут сместится - мы перестраховались и запретили доступ к физ. адресу параметра.
    Если давать доступ - программист на CoDeSys должен отслеживать события online change - это сложно.
    Т.к. у нас в стране документацию читают только в самом крайнем случае под дулом пистолета , а последствия ошибки в данном случае могут быть катастрофическими.
    Мы и убрали указатель.

  9. #19

    По умолчанию

    Ответ не принимается. В документации, которую никто не читает , сказано следующее:
    "Attention: Online Change might change the contents on addresses. Please regard this when using pointers on addresses !"
    Т. е. <b>"online change" вообще несовместимо с использованием указателей!</b>. А т. к. использовать SymLib (и SysLibFile, SysFibSockets, ...) без указателей все равно не получится, то мы ничего не теряем.
    Пугать катастрофическими последствиями не стоит, поскольку, надеюсь, идиотов, регулярно делающих "online change" на работающем объекте, среди пользователей Овена нет.

    А насчет отслеживания события "online change" - хорошая мысль. Продолжение исполнения программы со середины после изменения во многих случаях неприемлимо даже безотносительно к указателям. Надо будет вставить сложную программу "init_required:=TRUE;" в обработчик события, если оно действительно поддерживается.
    Последний раз редактировалось alex1963; 24.01.2009 в 14:11.

  10. #20

    По умолчанию

    alex1963, не путайте тёплое с мягким. Указатель сейчас в SymLib передаётся только на пользовательский буфер, и если этот указатель всегда перед отдачей инициализируется как pbuf:=ADR(My_BUF); то ничего страшного не произойдёт, т.к. даже при смене кода ADR(My_BUF) всегда будет иметь правильное значение.
    А вот если хранить в массиве заранее считанные адреса переменных - тогда капец.

    А что Вы там такое монструозное ваяете, что нужен доступ через символы и с индексацией?

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Ваши права

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