Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Преобразование минут в часы+минуты.

  1. #1

    По умолчанию Преобразование минут в часы+минуты.

    Доброго времени суток уважаемые форумчане!
    Не могу разобраться с каверзным вопросом:
    Из ПР в режиме слейв поступает множество переменных в ед.изм. "минуты", мне необходимо преобразовать их в панели в вид "hh;mm" может натолкнет кто на мысль как это сделать (пример математики или макросом), то же самое в обратном порядке (в обратном порядке я так понимаю формула будет выглядеть следующим образом: hh*60+mm, а вот прямой порядок не совсем ясно как извлечь остаток из HH при формуле вида: mm\60=hh остаток*60=mm?
    И не будет ли конфликтовать оба преобразования друг с другом в режиме чтение\запись в одну и туже переменную?

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

    По умолчанию

    Цитата Сообщение от SANdry Посмотреть сообщение
    Доброго времени суток уважаемые форумчане!
    Не могу разобраться с каверзным вопросом:
    Из ПР в режиме слейв поступает множество переменных в ед.изм. "минуты", мне необходимо преобразовать их в панели в вид "hh;mm" может натолкнет кто на мысль как это сделать (пример математики или макросом), то же самое в обратном порядке (в обратном порядке я так понимаю формула будет выглядеть следующим образом: hh*60+mm, а вот прямой порядок не совсем ясно как извлечь остаток из HH при формуле вида: mm\60=hh остаток*60=mm?
    И не будет ли конфликтовать оба преобразования друг с другом в режиме чтение\запись в одну и туже переменную?
    А зачем в одну и туже переменную?
    Почему не в разные?

    mm\60=hh остаток*60=mm
    с помощью ф.области
    Захват-01.png

    здесь
    время в ПР (mm) - рег.512

    в панели hh- PSW256 mm- PSW257

    ф. область (непрерывная)
    PSW256 = 4x512 / 60 // часы, остаток(минуты) отброшены
    PSW257 = PSW256 * 60 //только часы
    PSW257 = 4x512 - PSW257 //остаток о деления - (минуты)
    Последний раз редактировалось petera; 06.12.2022 в 14:13.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    А зачем в одну и туже переменную?
    Почему не в разные?
    Спасибо огромное, за алгоритм!

    Часть уставок времени инициализируется при запуске/(сбое питания) при запуске ПР, а уставок и данных времени много, соответственно придется "творить магию" в СП, либо заворачивать большое количество переменных в ПР, а затем разворачивать их в СП, но как это сделать, я еще не научился =)

  4. #4

    По умолчанию

    Цитата Сообщение от SANdry Посмотреть сообщение
    Спасибо огромное, за алгоритм!

    Часть уставок времени инициализируется при запуске/(сбое питания) при запуске ПР, а уставок и данных времени много, соответственно придется "творить магию" в СП, либо заворачивать большое количество переменных в ПР, а затем разворачивать их в СП, но как это сделать, я еще не научился =)
    Много это сколько?

  5. #5

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Много это сколько?
    32 сетевых переменных это только время в минутах (часть из которых уставки) + еще столько же статусных.

  6. #6

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    А зачем в одну и туже переменную?
    Почему не в разные?

    mm\60=hh остаток*60=mm
    с помощью ф.области
    Захват-01.png

    здесь
    время в ПР (mm) - рег.512

    в панели hh- PSW256 mm- PSW257

    ф. область (непрерывная)
    PSW256 = 4x512 / 60 // часы, остаток(минуты) отброшены
    PSW257 = PSW256 * 60 //только часы
    PSW257 = 4x512 - PSW257 //остаток о деления - (минуты)
    Такое представление упаковки ведь будет не правильно? Нужно ли вводить промежуточную переменную?
    Изображения Изображения

  7. #7
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,089

    По умолчанию

    Цитата Сообщение от SANdry Посмотреть сообщение
    32 сетевых переменных это только время в минутах (часть из которых уставки) + еще столько же статусных.
    Сейчас всего 59 регистров. 38 регистров содержат время. Из них 12 регистров чтение/запись - надо распаковывать/запаковывать, 12 чтение - только распаковывать, 12 запись - запаковывать и 2 запись - ничего не делать. 2 битовые маски, одна из которых занимает 2 регистра и склеивается в ПР. 18 регистров содержат статусы. Статусные регистры можно запаковать по форме А + Б*10 + С*100, тогда их станет 6.

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

    По умолчанию

    Цитата Сообщение от SANdry Посмотреть сообщение
    Такое представление упаковки ведь будет не правильно? Нужно ли вводить промежуточную переменную?
    У меня (распаковка) все правильно
    Что делаете Вы я не знаю.
    Вы что хотите и упаковать в той же ф. области?
    Работать не будет. Для упаковки нужна отдельная ф.область с действием от бита уведомления, который взводится в ц. вводах
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Цитата Сообщение от SANdry Посмотреть сообщение
    32 сетевых переменных это только время в минутах (часть из которых уставки) + еще столько же статусных.
    Конечно, способ распаковки с ф.областями работать будет, но при большом количестве исходных переменных потребует много накладных расходов - куча ф.областей, куча промежуточных регистров PSW

    по этому специализированный дисплей ЧЧ:ММ Вам поможет
    Скрытый текст:

    Копируйте в свой проект и пользуйтесь
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #10

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Конечно, способ распаковки с ф.областями работать будет, но при большом количестве исходных переменных потребует много накладных расходов - куча ф.областей, куча промежуточных регистров PSW

    по этому специализированный дисплей ЧЧ:ММ Вам поможет
    Скрытый текст:

    Копируйте в свой проект и пользуйтесь
    Да, действительно, данный дисплей поможет с переменными на вывод информационных данных времени! Но не решит основную проблему.
    Чтобы внести ясность, как уточнил уважаемый Dimensy: есть несколько переменных, которые представлены в минутах, которые нужно только распаковать (превратить в фомат HH:MM) - с этим прекрасно справляется представленный вами специализируемый дисплей, а есть переменные времени назовем их корректировочные (представленные в формате "MMM") которые нужно "распаковать" (привести к формату HH:MM) при необходимости изменить, и запаковать обратно (привести к формату "MMM"), так же есть просто уставки времени которые нужно просто запаковать из представления "HH:MM" в "MMM", есть ли для такой задачи "специализированные дисплеи"?
    Я предположу что этот специализированный дисплей был создан в модифицированной версии конфигуратора?

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 22.08.2021, 21:17
  2. Trace останавливается через 1ч 11 минут
    от AndreyS в разделе СПК1хх
    Ответов: 3
    Последнее сообщение: 18.04.2017, 11:46
  3. Ответов: 4
    Последнее сообщение: 19.03.2015, 11:17
  4. SCADA Winlog Pro - Ваш проект за 5 минут!
    от Dmitry Lopatin в разделе Другие SCADA системы
    Ответов: 6
    Последнее сообщение: 25.08.2010, 16:56
  5. Время 0 часов 0 минут не ставится ?
    от Валенок в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 10.11.2008, 11:03

Ваши права

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