Страница 2 из 2

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 04 июн 2019, 14:30
SMax
Из FB110 вызывается FC129, эта функция опрашивает периферийный вход PIW304 (PIW [AR1,P#4.0], где AR1 = 300 + смещение на 4 байта). Далее функция умножает его на 1000 и делит на 40 (значение PIW304 максимально может быть равно 65, иначе будет переполнение IO3 = MW300). Результат функции FC129 сохраняется в переменной STAT21 в FB110 - (DB110.DBW50).
Опрос PIW300 и PIW302 не нашел.

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 05 июн 2019, 06:49
mr_Frodo
Ну так пив304 это адрес этого энкодера. Возможно в нем передается скорость вращения.

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 25 июн 2019, 20:28
phantom
Продолжая тему по энкодерам, прошу помочь с функцией.
70 энкордер в FB110 в NT8 вызывает функцию 129, в этой функции в аккумулятор загружается то, что поступает от энкодера, далее идет смещение на 3 слова влево, далее загружается в адресный регистр 1 и тут значение из адресного регистра + 4 байта должно передаваться в аккумулятор 1, а не передается т.к RLO = 0.
После того как RLO будет положительным данные из аккумулятора 1 передадутся IO3 и после этого сработает Network2.

Теперь вопрос как он должен активироваться? При вызове функции 129, ей должно предается RLO от FB110? Или после оператора LAR1 прописать чтение какого-нибудь меркера положительного?

Изображение

Прописал положительный меркер, не помогло. При каком условии из адресного регистра должно передаться в аккумулятор?
Изображение

Не совсем пойму в строке: L PIW [AR1,P#4.0] - загружается в ACCU1 входное периферийное слово из адресного регистра 1 со смещением. Это входное периферийное слово берется от PIW300 (в моем случае IW80 я его подменил для отладки)?
Изображение

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 25 июн 2019, 21:58
mr_Frodo
phantom писал(а):должно передаваться в аккумулятор 1, а не передается т.к RLO = 0.
Изображение
а почему Вы решили, что для передачи необходимо условие? :smoke:

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 25 июн 2019, 22:01
mr_Frodo
загрузка и выгрузка аккумулятора - Load & Transfer - безусловные команды. Вот если бы для их обхода использовать условие и jamp, то тогда, можно , а так .... 8)
И просто, чтоб Вам было проще и понятней, выкиньте эту конструкцию и сделайте проще
NW1
L PIW304 (или какой там нужен?!?)
T #IO3

NW2 ......

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 26 июн 2019, 16:26
phantom
а как же смещение? оно для чего то нужно?! :)

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 26 июн 2019, 16:58
mr_Frodo
В данном случае с помощью его формируется число, необходимое для использования в адресном регистре и дальнейшего в качестве указателя на адрес. ВСЁ. Было бы это как-то рационально, если бы входящие данные для этого были сформированы динамически.... Но увы и ах на входе функции мы видим всё то-же статичный элемент - обычное число. И нахрена спрашивается весь огород?

Re: Как передать значение из меркерного слова в перефирийное

Добавлено: 26 июн 2019, 17:00
mr_Frodo
Чтобы спрятать от новичка адрес?!? - дурость такого же новичка.