Я тоже сначала хотел написать то, что написали Вы. Но в итоге:CHANt писал(а):А, точно, увидел - тогда, извините! Ничего менять не нужно.
Михайло писал(а):Да вроде в принципе достаточно просто перецепить шину к другому порту в NetPro.
Модератор: Глоб.модераторы
Я тоже сначала хотел написать то, что написали Вы. Но в итоге:CHANt писал(а):А, точно, увидел - тогда, извините! Ничего менять не нужно.
Михайло писал(а):Да вроде в принципе достаточно просто перецепить шину к другому порту в NetPro.
Каюсь, лень мышкой ткнуть в область адресации было...Михайло писал(а):Я тоже сначала хотел написать то, что написали Вы. Но в итоге:
Обновление области отображения идет как обычно, в начале и в конце цикла.Никита писал(а):Еще такой вопрос по обмену данными - в существующей (и функционирующей на исправных установках) программе обращение к этим адресам в области дискретов (слово статуса и слово состояния) производится не к периферии, а к области отображения. Насколько корректен такой подход и откуда и когда при этом обновляется отображение?
Т.е. происходит за то же время, которое отведено для обновления области локального ввода-вывода? Тогда остается открытым вопрос откуда. Впрочем вопрос так, для повышения общего уровня политической грамотности.Обновление области отображения идет как обычно, в начале и в конце цикла.
Стало быть прямое обращение не пройдет? А заместо SFC14 и 15 должны вызываться FC1 и FC2 и обмен без всяких Data Consistency?If you are using a CP342-5, then you cannot access the data on the slaves using Load/Transfer commands or bit combination operations. In this case the I/O data communications are done in two steps. First the data has to be transferred from the CPU to the CP and then from the CP to the slaves (in reverse order accordingly for read operations). Data transfer from the CP to the slaves is done automatically. You have to deal with the data transfer from the CPU to the CP yourself. Here you have two special functions that do this for you.
Communications between the CPU and the CP342-5 are made via the functions FC 1 "DP_SEND" and FC 2 "DP_RECV". You must assign the parameter "CPLADDR" to both functions, the parameter "SEND" to function FC 1 and the parameter "RECV" to function FC 2.
Это мелочи жизни. Step7 думаю просто не примет десятичную константу на входе блока и заставит задуматься.Да, SFC14/15 относится только к встроенному интерфейсу DP CPU. Пример работы с CPU-2DP, и CP 342-5 на русском - http://www.automation-drives.ru/as/down ... OFIBUS.pdf
При работе с FC1/FC2 обратите внимание на входной параметр CPLADDR - он задается в программе пользователя в шестнадцатеричном формате, тогда как представляется в HWConfig (в области адресации PII/PIQ) в виде десятичного числа.
В моем конкретном случае есть две пары адресов I и Q - PCV и PD идут с разрывом. Без PCV можно обойтись вообще. Т.е. управляющее слово и задание на адрес Q Process data, статус и текущее значение - с адреса I?CPLADDR - это и есть обращение к области данных нужного частотника.
Код: Выделить всё
CALL "DP_RECV"
CPLADDR:W#16#100 \\ из адреса СР начиная с I=256
RECV :=P#М 0.0 BYTE 16 \\взять данные и записать в область меркеров длиной 16 байт, где первые 8 байт (4 слова) данные 1 частотника, вторые 8 байт данные второго частотника
...
Код: Выделить всё
CALL "DP_SEND"
CPLADDR:W#16#100 \\ в адреса СР начиная с Q=256
SEND :=P#М 16.0 BYTE 16 \\уложить данные из области меркеров длиной 16 байт, где первые 8 байт данные для 1 частотника, вторые 8 байт данные для второго частотника
...
Да.Никита писал(а):Т.е. обращение к адресному пространству CP по порядку Pоrfibus-адресов?
Именно это я и пытаюсь реализовать с целью проверить порты. А если Вы еще и подскажете как это сконфигурировать - скажу еще одно спасибо. (Первое - за потраченное воскресенье)Если есть возможность у Вас, попробуйте соединить CPU-DP и СР 342-5 одного контроллера, и передать какие-то данные. Вся адресация сразу будет видна.
Слова управления задается десятичной константой, отличаются 4-м разрядом (пуск/стоп), остальное - проблемы компилятора.И у меня возник вопрос.- в Вашем проекте, в слове управления для ПЧ, байты местами меняются?
Если сам частотник записывает обороты именно в тот байт/слово, в котором его принимает ПЛК, то все нормально. Есть стандартные телеграммы, где частота вращения пишется в конкретное слово телеграммы, но бывают и пользовательские телеграммы...Никита писал(а):Еще один момент может подскажете, чтоб не рыться по документам. Обороты от частотника в PIW и считаные цепочкой в DB (и соответственно задание тоже) будут сохранены одинаково, байты не меняются?
Вот-вот, поэтому и возник вопрос. В том, что удалось слить с контроллера, обращения к битам слова статуса ведутся именно так, как я написал. Только это слово не пересылается через SFC, а берется из периферии. Либо это изначально ошибка программиста и за три года ее не заметили, либо при обращении к PIW байты где-то меняются, а при пересылке этого не происходит. Ну или Данфоссовцы рассчитывали на то, что разбирать будут уже в двухбайтовых числах. Запуск и останов сделаны именно так - в PQW пересылаются десятичные константы.Михайло писал(а):Нет. M21.0 - самый младший бит, а M20.0 - 8-й бит.
Код: Выделить всё
L 2#1010010110
T DB2.DBW 0
L DB2.DBW 0
T MW 220