Страница 354 из 396 ПерваяПервая ... 254304344352353354355356364 ... ПоследняяПоследняя
Показано с 3,531 по 3,540 из 4436

Тема: Фичи и баги OWEN Logic

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Сетевые переменные - 2-х байтные. Максимальное значение = 65535. 99999 - 65536 = 34463
    Последний раз редактировалось EFrol; 21.04.2025 в 14:33.

  2. #2

    По умолчанию

    Да - это такой прикол. В программе целочисленные значения типа UDINT(4 байта), а в сетевых переменных целочисленные UINT(2 байта). Причем если из программы переменную привязать в сетевые, то никакой ошибки не будет, просто при значении больше 65535 будет в сетевой переменной мусор.
    Нигде про это не написано, разбирайтесь сами с такими багами.
    Для меня ПР исчезли навсегда как приборы после обнаружении такой фичи.
    Последний раз редактировалось Николай Суриков; 21.04.2025 в 15:59.

  3. #3
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,531

    По умолчанию

    Насколько знаю: в режиме мастер ПР умеет работать с 32 битными сетевыми переменными, в режиме слейв - надо вручную разделять 32 битную переменную на два смежных регистра!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  4. #4

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Насколько знаю: в режиме мастер ПР умеет работать с 32 битными сетевыми переменными, в режиме слейв - надо вручную разделять 32 битную переменную на два смежных регистра!
    В справке написано что есть три типа данных - булевые, целочисленные и вещественные, так же написано что нет неявного преобразования из одного типа в другой.
    Значит если одну переменную можно привязать к другой и проект компилируется без ошибок, значит они имеют одинаковый тип, но это не так, в слейве целочисленные это UINT.
    Значит это баг и притом нигде про него не написано (возможно ошибаюсь, поправьте).

  5. #5
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,531

    По умолчанию

    В режиме слейв 32 битная целочисленная внутренняя переменная обрежется до 16 младших бит, для правильной передачи надо вручную разделить на два смежных регистра, вроде об этом много разговоров было, поэтому я запомнил, где это написано не знаю, может потом допишут, если ещё не написали или добавят поддержку работы с такими переменными в режиме слейв.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  6. #6

    По умолчанию

    Извините, я не хочу к вам цепляться, но как разделить одну переменную 4 байта на две по 2 байта если в ПР нет переменных по 2 байта?))
    Получается мы делим VAR1 (UDINT) на две VAR2 и VAR3 тоже UDINT и потом так же через баг лоджика присваиваем к сетевым переменным UINT.
    Далее выходит "обновление" (которые уже стали выходить каждую неделю) и все проекты полетят.

  7. #7

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    Извините, я не хочу к вам цепляться, но как разделить одну переменную 4 байта на две по 2 байта если в ПР нет переменных по 2 байта?))
    Получается мы делим VAR1 (UDINT) на две VAR2 и VAR3 тоже UDINT и потом так же через баг лоджика присваиваем к сетевым переменным UINT.
    Далее выходит "обновление" (которые уже стали выходить каждую неделю) и все проекты полетят.
    Что значит нет, 1 регистр это и есть 2 байта. Вы это должны знать как никто другой.
    Передаёте сетевую целочисленную 1 или 2 регистрами, то есть передаёте WORD (65535) или DWORD (4294967295).
    Отправляя число больше 65535 надо выбирать 2 регистра, для программиста это как азбука.
    Так же как типы переменных, разборка и сборка 32 битных переменных на две 16 битных и это не меняется при обновлении ОЛ.
    Последний раз редактировалось kondor3000; 21.04.2025 в 17:52.

  8. #8

    По умолчанию

    Есть переменная из часов реального времени "Время в миллисек" - она целочисленная.
    Есть локальная переменная - она целочисленная.
    Есть сетевая переменная - она тоже целочисленная.

    Привязываю локальную переменную к часам реального времени и выношу на холст.
    Выношу на холст сетевую переменную, связываю их линией, ниточкой, проводочком.

    Обе переменных целочисленные, в описании к приборам и среде программирования есть только три вида данных и только один целочисленный.
    Но оказывается сетевые переменные не совсем такие как написано в руководстве, она обрезанная, и где-то на 180 странице темы на форуме об этом написано.

    Так как мне в слейв передать переменную часов реального времени?
    Штатными средствами разделить 4 байта на 2 по 2?

  9. #9
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,531

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    Есть переменная из часов реального времени "Время в миллисек" - она целочисленная.
    Есть локальная переменная - она целочисленная.
    Есть сетевая переменная - она тоже целочисленная.

    Привязываю локальную переменную к часам реального времени и выношу на холст.
    Выношу на холст сетевую переменную, связываю их линией, ниточкой, проводочком.

    Обе переменных целочисленные, в описании к приборам и среде программирования есть только три вида данных и только один целочисленный.
    Но оказывается сетевые переменные не совсем такие как написано в руководстве, она обрезанная, и где-то на 180 странице темы на форуме об этом написано.

    Так как мне в слейв передать переменную часов реального времени?
    Штатными средствами разделить 4 байта на 2 по 2?
    Если Вы передаёте в слейв, значит сетевой интерфейс ПР в режиме мастер, мне кажется, никаких дополнительных манипуляций не нужно!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  10. #10

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Если Вы передаёте в слейв, значит сетевой интерфейс ПР в режиме мастер, мне кажется, никаких дополнительных манипуляций не нужно!
    Хорошо, но если ПР в режиме слейв... то начинается магия.

Страница 354 из 396 ПерваяПервая ... 254304344352353354355356364 ... ПоследняяПоследняя

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  3. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  4. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 20:55

Ваши права

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