Страница 167 из 1047 ПерваяПервая ... 67117157165166167168169177217267667 ... ПоследняяПоследняя
Показано с 1,661 по 1,670 из 10464

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #1661
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Есть еще команда MOD она может помочь в таких делах

  2. #1662
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,686

    По умолчанию

    capzap не совсем понимаю, как он может помочь.
    Использую маску по методу исключения, ну или можно инвертировать сигнал.
    Например при штатном режиме 3+2 идут комбинации byte
    3, 6, 12, 24 - потом должно идти 17 (первое и последнее устройство), потом опять 3 и так далее.
    При переходе на режим 4+1 комбинация уже другая 1, 2, 4, 8, 16, 1.

    А например вариант 3+3 (основной режим) уже вовсе
    (3+3) 7, 14, 28, 56, 49, 35, 7
    перешли на (4+2) 15, 30, 60, 57, 51, 39, 15
    а на (5+1) 31, 62, 61, 59, 55, 47, 31

    Я вот пока закономерности не особо вижу, как можно универсально написать, чтобы это все можно было менять на лету например через переменную ModBUS или еще как, не перепрошивая ПЛК.

    Кое какая закономерность есть, только как ее применить, вопрос....когда 3 устр. в резерве, после двух старших битов (когда хвост ползет на начало) по MOD получается 7, 14, 28 (как инверсия 3 запущенных устройств)
    когда 2 устр. в резерве то по MOD 3, 6, 12, 24
    когда 1 устр. то по MOD 1, 2, 4, 8, 16

  3. #1663
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    capzap не совсем понимаю, как он может помочь.
    Использую маску по методу исключения, ну или можно инвертировать сигнал.
    Например при штатном режиме 3+2 идут комбинации byte
    3, 6, 12, 24 - потом должно идти 17 (первое и последнее устройство), потом опять 3 и так далее.
    При переходе на режим 4+1 комбинация уже другая 1, 2, 4, 8, 16, 1.

    А например вариант 3+3 (основной режим) уже вовсе
    (3+3) 7, 14, 28, 56, 49, 35, 7
    перешли на (4+2) 15, 30, 60, 57, 51, 39, 15
    а на (5+1) 31, 62, 61, 59, 55, 47, 31

    Я вот пока закономерности не особо вижу, как можно универсально написать, чтобы это все можно было менять на лету например через переменную ModBUS или еще как, не перепрошивая ПЛК.

    Кое какая закономерность есть, только как ее применить, вопрос....когда 3 устр. в резерве, после двух старших битов (когда хвост ползет на начало) по MOD получается 7, 14, 28 (как инверсия 3 запущенных устройств)
    когда 2 устр. в резерве то по MOD 3, 6, 12, 24
    когда 1 устр. то по MOD 1, 2, 4, 8, 16
    Специально для Вас достал ноут и разрядил батарею, пример на скорую руку, могут быть ошибки, про множество вариантов не стал делать, попытался показать направление как это можно провернуть
    Необращайте внимание на таргет для плк160, конфигурация не затронута

  4. #1664
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,686

    По умолчанию

    capzap спасибо, попробую разобраться в ST и как-то потом применить. Мне правда непонятно, почему MOD 31 ? в смысле непонятно, как расчитать это самое число для MOD

    так, для данного примера с MOD 31 разобрался. но тут два устройства, не так сложно. а при 3-х два разных MOD надо будет как-то объединять...
    Вот бы еще научиться ST примеры быстро переводить в CFС , а то пока соображу как и чего ....

  5. #1665
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    Из этого:
    Цитата Сообщение от melky Посмотреть сообщение
    ..читаем внимательно HELP
    SHR
    res:= SHR(in,n) Побитный сдвиг операнда in вправо на n бит с дополнением нулями слева...
    Фактически SHL сдвигает не операнд, а регистр, который ессно 32-х разрядный. Маленькая, но ошибка в документации.
    ROL и ROR соответственно честно работают с операндами.
    сделал вывод - melky не знает как работает SHL
    Просто надо внимательно читать HELP (в данном случае )
    Побитный сдвиг операнда in вправо на n бит с дополнением нулями слева...
    Ошибок нет. Все по чесному.
    как заставить биты крутиться не по 8-ми, а по 5-ти без расчета ручками.
    А просто нужно имитировать работу проца. Например у вас регистр из 5 бит. Имитируем ROL на байте.

    b := ROL(b,1);
    b.0 := b.5; он же - OF
    b.5 := 0; и его нету как бы


    ST примеры быстро переводить в CFС
    Выбираем ПОУ. Правая кнопа. Конвертировать. FBD - кастрированный CFC

  6. #1666
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,686

    По умолчанию

    Валенок я пытаюсь внимательно читать HELP и по моему мнению ОПЕРАНД это то, что на входе, для SHL в Codesys либо BYTE, либо WORD, либо DWORD.

    И если при записи в DWORD значения 32 мы получаем на выходе 1 и идем по кругу
    То логично предположить что и указав, что работаем с BYTE и записи на вход 8 тоже должны получить 1 на выходе

    В обоих случаях происходит переполнение ОПЕРАНДА (нет такой "буквы" по счету в данном "слове").
    Тут одно из двух, либо при работе с байтом и записи на входе 8 должна быть на выходе 1-ца, либо при работе с двойным словом и записи 32 на входе должен быть 0 на выходе.

    Просто перевести не проблема, проблема адаптировать код ST к моим условиям, так как пример не имеет обвязки необходимой. В общем более менее разобрался с переводом в CFC

  7. #1667
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    "Выбираем ПОУ. Правая кнопа. Конвертировать. FBD - карованный CFC"
    Я бы не предложил фбд, там такой гемор начнется если джампов много

  8. #1668
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    И если при записи в DWORD значения 32 мы получаем на выходе 1 и идем по кругу
    Я этой фразы вообще не понимаю. Изобразите вызов на чём-нибудь. С указанием типов

    PS
    Только щас заметил. SHL - нули справа. Но это мелочи

  9. #1669
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ..если джампов много
    в ST ?

  10. #1670
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    в ST ?
    То что из условий или кейсов в фбд получится

Страница 167 из 1047 ПерваяПервая ... 67117157165166167168169177217267667 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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