Здравствуйте! Сетевая переменная в эмуляции..... Если слот мастер - назначается число 1000000. А если слот слейв - назначаю миллион - ограничивается 16960?? Это как?varMaster.jpgvarSlave.jpg
Здравствуйте! Сетевая переменная в эмуляции..... Если слот мастер - назначается число 1000000. А если слот слейв - назначаю миллион - ограничивается 16960?? Это как?varMaster.jpgvarSlave.jpg
Потому, что
1 000 000(dec) = F4240(hex) = 1111 0100 0010 0100 0000(bin)
в слейве целочисленная сетевая переменная всего 16 бит. Т.е. от 1111 0100 0010 0100 0000(bin)
остается всего 0100 0010 0100 0000(bin) или 4240(hex), остальное обрезается.
4240(hex) = 16960(dec).
В мастере наверно для сетевой переменно выбрано 2 регистра(32 бита), по этому "обрезания" нет
Последний раз редактировалось petera; 30.01.2023 в 13:00.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
А здесь скрин и описание как 32 битную целочисленную переменную разобрать на две 16 битных, передать по сети и и собрать обратно в 32 битную.
Важно правильно собрать переменную из 2 регистров.
https://owen.ru/forum/showthread.php...&page=280#2795
Последний раз редактировалось kondor3000; 30.01.2023 в 13:14.
Странно. Везде сетевые переменные одного типа же ведь. И в слейве и в мастере. Там же нет двух типов целочисленных. До этого я как то и не задумывался над этим.... Только сейчас столкнулся с миллионом.... Пойду штудировать проблему.
Это просто готовый проект мне дали. Там просто один пр200 передает другому входы выходы. Один мастер, другой слейв. Программы одинаковые. И уже делали два таких шкафа. А я решил проверить. И не сработало. А может в "железе" то и работает все?
Они вот там в проекте умножают 4..20 на 50000, чтобы целое сделать, видимо. Но такое целое как раз и не по зубам пр200 оказалось. Почему на 10 не умножить, или на 100 мне не отвечают. А зачем еще на 16 умножают и 4 прибавляют - тоже?? Переделаю я, наверное по ходу все...varSlave1.jpg
Последний раз редактировалось lagutin; 30.01.2023 в 14:44.
Это как одного типа?
Вот 16 бит
Захват-01.png
а вот 32 бита
Захват-02.png
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Там по ссылке, ещё на 4-5 страниц обсуждений и по поводу Мастера и слейва и по поводу типов переменных.
Умножение на 50 000 видимо перевод 4-20 мА в пределы диапазона датчика.
Умножение на 16 +4 вероятно перевод обратно в шкалу 4-20 мА. На сколько там правильно сделано, надо проверять.
Последний раз редактировалось kondor3000; 30.01.2023 в 16:10.
Да. Я понял проблему. Буду вникать. Прочитаю все. Спасибо всем.
Здравствуйте,подскажите как сделать поэтапно работу программы с обращением с 4 выходами:
Условия есть 4 выхода К1,К2,К3,К4 с помощью них различными комбинациями мы задаем те или иные параметры.
Пример: Мне необходимо включить 1 клемму на 5 минут,по окончанию 1 этапа мне необходимо включить уже 1 и 2 клемму на 5 минут ,после 1 и 4 так же на 5 минут.Как мне сделать несколькими условиями обращения к одному и тоже выходу.
63.png
Знаете как извлекаются биты из маски? Ваша таблица ей полностью соответствует, вот пример 1 Таблица переключекний.jpg
Входом переключаете счётчик по режимам, в зависимости от режима извлекаются биты из маски.
Всего 16 режимов ( с 0 по 15), на 16 счётчик обнуляется.
Если прикрутить таймер на 5 минут, будут переключаться выходы через 5 минут 1 С таймером.jpg
Последний раз редактировалось kondor3000; 01.02.2023 в 13:41.
Нет не знаю, попробую разобраться по вашему примеру.
на данный момент я сделал вот так.69.png
Остался вопрос по составлению последовательных условий.Чтобы за одним условием автоматически включалось другое.
Последний раз редактировалось Виталийй; 01.02.2023 в 14:10.