Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 19 из 19

Тема: Перезапись энергонезависимой переменной по сети

  1. #11

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    можно придумать и свой, какой захочется, тип данных и даже всё это оформить в виде макросов!
    Так и делаю, просто домножаю на нужную степень, добавляю в INT шифр степени и знака, и обратное восстановление в ОЛ возможно - все это занимает ценное машинное время. И ещё нужно чтобы ФБ работы с регистром, в том числе сдвиги, работали и для float, тогда всё проще. Например для выявления знака просто смотреть 31-й бит регистра. Сейчас приходится много действий совершать чтобы достигнуть результата. Вспомните историю с fSEL.
    Последний раз редактировалось Серёга Букашкин; 28.12.2017 в 13:30.

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

    По умолчанию

    Цитата Сообщение от Серёга Букашкин Посмотреть сообщение
    Так и делаю, просто домножаю на нужную степень, добавляю в INT шифр степени и знака, и обратное восстановление в ОЛ возможно - все это занимает ценное машинное время. И ещё нужно чтобы ФБ работы с регистром, в том числе сдвиги, работали и для float, тогда всё проще. Например для выявления знака просто смотреть 31-й бит регистра. Сейчас приходится много действий совершать чтобы достигнуть результата. Вспомните историю с fSEL.
    С наличием FSel в ОЛ лично я ускорения не почувствовал, ну и в инте можно несколько бит отвести на значение степени, а знак я бы оставил как есть, без изменений, 15-й бит, затем 3-4 бита степень(код степени), затем число 11-12 бит!
    Последний раз редактировалось Сергей0308; 28.12.2017 в 16:07.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #13

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    С наличием FSel в ОЛ лично я ускорения не почувствовал
    Конечно, если их в программе несколько, то трудно почувствовать, но когда их десятки - очень заметно. И вообще заставлять умножать float на 0 и на 1 безнравственно. Это в прошлом, хотя... для flоat еще не все инструменты есть, например обработка как регистра.
    Последний раз редактировалось Серёга Букашкин; 28.12.2017 в 14:27.

  4. #14
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    А зачем такие сложности?
    Сетевая переменная и так энергонезависимая. Зачем ее дублировать в еще в одной энергонезависимой переменной?
    Таки вы правы.
    Но пришлось приделать программную инициализацию значения по умолчанию при заливке программы.
    поле для такого значение вроде есть, но не активно.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  5. #15
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Цитата Сообщение от Серёга Букашкин Посмотреть сообщение
    Было бы здорово если бы еще была переменная float половинного формата, она дает меньшую точность в мантиссе, но занимает 16 бит. А для подавляющего большинства приложений эта точность более чем достаточна. Для сетевых обменов тогда занимала бы один регистр, а то места в обменном массиве и так мало, всего 128 байт. Или дали бы ФБ перевода в половинный формат и обратно. Это на заметку разработчикам ОЛ. Или увеличьте объем обменного массива, 128 байт это мало!
    Если данные для передачи схожи, лучше засунуть их в некое подобие массива, откуда доставать и передавать по сети по одному. Так можно сэкономить не только байты обменного массива, но и сигналы скада-систем, которые стоят не дешево.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  6. #16
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Таки вы правы.
    Но пришлось приделать программную инициализацию значения по умолчанию при заливке программы.
    поле для такого значение вроде есть, но не активно.
    Да, так и есть, инициализация пока только программная
    Например
    Захват-4.png
    Здесь инициализация
    - принудительная при первом включении после загрузки
    - в процессе работы по требованию (SetDefaulf)
    Макрос инициализации
    Захват-2.png
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #17
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Не совсем понятно, В чем разница между init и set default, зачем там R-trig и зачем делать макрос из одного sel-элемента и последовательно инициализировать.
    temp2.png
    Последний раз редактировалось anthrwpos; 29.12.2017 в 05:50.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  8. #18

    По умолчанию

    Очень важный момент. А не может ли получиться так, что переменная записана в сеть, раньше чем считана с сети, а следовательно - стёрта? Или всегда происходит сначала прием данных из сети, а потом туда запись?

  9. #19
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от ДмитрийК Посмотреть сообщение
    Очень важный момент. А не может ли получиться так, что переменная записана в сеть, раньше чем считана с сети, а следовательно - стёрта? Или всегда происходит сначала прием данных из сети, а потом туда запись?
    Думаю, что нет.
    Классический ПЛК работает так.
    Каждый цикл выполнения программы:
    1. Запоминание физических входных переменных в буфере ввода.
    2. выполнение кода программы с использованием переменных из буфера ввода
    3. результаты выходных переменных запоминаются в буфере вывода
    4. содержимое буфера вывода записывается в физические выходы.
    скорей всего это справедливо и для сетевых переменных.
    Последний раз редактировалось petera; 11.09.2018 в 10:21.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Ответов: 23
    Последнее сообщение: 15.05.2017, 14:12
  2. плк304, размер энергонезависимой памяти
    от EvgenKinchin в разделе ПЛК3хх
    Ответов: 4
    Последнее сообщение: 04.10.2016, 14:31
  3. Ответов: 2
    Последнее сообщение: 07.05.2016, 21:21
  4. Ответов: 2
    Последнее сообщение: 23.06.2011, 14:22
  5. Ответов: 4
    Последнее сообщение: 15.02.2010, 06:55

Ваши права

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