Добрый день. Может кто сталкивался. Управляю по ModBus с ПЛК110-60 частотником (Веспер Е2-8300). На частотнике 1-00 (Выбор источника команды ПУСК/СТОП) => 0002: Последовательная линия связи 1-06 (Выбор источника задания частоты) => 0004: Последовательная линия связи Записываю две команды(Ниже приведен код) 1. Пуск/Стоп 2. Опорная частота. Передача параметров идет. Перед тем как подаю Пуск, на дисплее частотника отображается та опорная частота, которую я передаю (напр. 1750(17,5 гц)). Но как сигнал становится Пуск и частотник начинает работать, то он просто разгоняется до 5000 (50Гц), т.е. до максимума и не обращает внимания на мою опорную частоту. Может кто подскажет что не так, может в частотнике что-то нужно еще. И из частотника я читаю параметр выходной частоты после пуска именно 5000 почему то.
################################# Из программы(если нужно). Программа работает Запись параметров 6: (* функция 16 - запись 2 параметров типа WORD в прибор PCH1 с адресом 2 всего 2 регистров *) (*запись в буффер параметра типа WORD*) Buffer[3] := WORD_TO_BYTE(OPORNAYA_CHASTOTA1); Buffer[2] := WORD_TO_BYTE( SHR(OPORNAYA_CHASTOTA1,8)); Buffer[1] := WORD_TO_BYTE(UPRAV_PCH1); Buffer[0] := WORD_TO_BYTE( SHR(UPRAV_PCH1,8)); send2_modbus( Enable:= enabl, (* разрешение работы блока *) Mode:=MB_RTU , (*режим передачи*) DevAddr:=3 , (*адрес*) FirstAddr:= 257, (*номер регистра*) Quantity:= 2, (*количество записываемых регистров*) ComHandle:=Settings.Port ,(*номер сом-порта*) TimeOut:=TimeOut , (*таймаут T#50ms*) Buffer:=Buffer , (* буфер данных *) Complete=>cmpl , (* скопировать признак завершения операции *) Exception=>err , (* скопировать регистр ошибок *) RegCnt=> DataSize); (*кол-во считанных байтов *)
Чтение выходной частоты: 4: (* функция 03 инт - ФБ считывает значение 1 параметра типа WORD из прибора PCH1 с адресом 3 начиная с регистра 292 по протоколу Modbus-RTU*) get1_modbus1( Enable:=enabl , (* разрешение работы блока *) Mode:=MB_RTU , (*режим передачи*) DevAddr:=3 , (*адрес*) FirstAddr:=292 , (*номер регистра*) Quantity:=1, (*количество регистров*) ComHandle:=Settings.Port , (*номер COM-порта*) TimeOut:=TimeOut , (*Таймаут T#50ms*) Buffer:=Buffer , (* буфер данных *) Complete=>cmpl , (* скопировать признак завершения операции *) Exception=>err , (* скопировать регистр ошибок *) ByteCnt=>DataSize ); (*кол-во считанных байтов *) (*если установлен признак завершения операции, то *) IF cmpl THEN IF err=0 THEN (*Если нет ошибок, то получаем данные из буфера типа INT*) CHASTOTA_NA_VUHODA1:=BYTE_TO_WORD(BUFFER[1]) OR SHL(BYTE_TO_WORD(BUFFER[0]),8); END_IF master1:=5; (*переходим к выполнению следующего ФБ*) END_IF
|