Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: ПЛК304(308)+4ПЛК110

  1. #1

    По умолчанию ПЛК304(308)+4ПЛК110

    Здравствуйте. Совсем недавно начал знакомиться с CDS и мое знакомство началось с 3 версии этого продукта. Сразу возникли трудности. А именно: необходимо через ПЛК 304/308 опрашивать и управлять четырьмя ПЛК 110. Посмотрел примеры подключения модулей (МВ/МУ). Но в библиотеке ModulsOwenLib нет блоков для ПЛК. Прочитал, что блок для ПЛК можно сделать из готовых модулей ввода/вывода. Может кто-то может подсказать что именно нужно изменить в библиотеке (желательно поподробнее, т.к. опыта программирования мало) или укажет другие способы решения данной проблемы . За ранее спасибо.

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Если не купили ещё, то лучше соедините 4 ПЛК 110 по UDP и всЁ.
    Или пишите опрос через библиотеки самостоятельно.
    1 вариант работает быстрее.

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

    По умолчанию

    Цитата Сообщение от Alex51 Посмотреть сообщение
    Здравствуйте. Совсем недавно начал знакомиться с CDS и мое знакомство началось с 3 версии этого продукта. Сразу возникли трудности. А именно: необходимо через ПЛК 304/308 опрашивать и управлять четырьмя ПЛК 110. Посмотрел примеры подключения модулей (МВ/МУ). Но в библиотеке ModulsOwenLib нет блоков для ПЛК. Прочитал, что блок для ПЛК можно сделать из готовых модулей ввода/вывода. Может кто-то может подсказать что именно нужно изменить в библиотеке (желательно поподробнее, т.к. опыта программирования мало) или укажет другие способы решения данной проблемы . За ранее спасибо.
    мне кажется слишком все усложняете, ПЛК от модулей отличается тем что модбас слейв надо самому создавать, для мастера измениться только адресация регистров и их количество

  4. #4

    По умолчанию

    Спасибо за то, что так быстро отвечаете.
    Касательно ответа lara197a - да оборудование уже есть, поэтому желательно сделать на нем.
    Теперь по поводу ответа от capzap. Если я правильно вас понимаю, то в CDS 2.3 я на ПЛК 110 настраиваю ModBus Slave, а затем в CDS3 настраиваю любой модуль из ModulsOwenLib под эти переменные?

  5. #5

    По умолчанию

    Или можно просто взять готовый модуль не изменяя его внутренностей и подовать на его вход эти переменные?

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

    По умолчанию

    Цитата Сообщение от Alex51 Посмотреть сообщение
    в CDS 2.3 я на ПЛК 110 настраиваю ModBus Slave, а затем в CDS3 настраиваю любой модуль из ModulsOwenLib под эти переменные?
    как то так

  7. #7

    По умолчанию

    Спасибо. Буду пробовать

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

    По умолчанию

    В КДС3 открываете саму библиотеку ModulsOwenLib и смотрите как она работает, берете её за пример и делаете свой опрос своих слейвов

  9. #9

    По умолчанию

    Вот внутренности блока МВ110-х.8Д:
    FUNCTION_BLOCK MV110_8D_inputs
    VAR_INPUT
    (*идентификатор порта*) Handle:SysCom.RTS_IEC_HANDLE;
    (*разрешение на работу*) Enabl:BOOL;
    (*режим работы ModBus (MB_RTU, MB_Ascii), по умолчанию RTU*) Modd:MB_MODE:=MB_RTU ;
    (*адресс прибора, по умолчанию 16*) Addr:BYTE:=16;
    (*таймаут, по умолчанию 100мс*) TimeOut: TIME:=T#100MS;
    (*число перезапросов, по умолчанию 3*) ErCL:BYTE:=3;

    END_VAR
    VAR_OUTPUT
    (*состояния 1го входа прибора*) inp1:BOOL;
    (*состояния 2го входа прибора*) inp2:BOOL;
    (*состояния 3го входа прибора*) inp3:BOOL;
    (*состояния 4го входа прибора*) inp4:BOOL;
    (*состояния 5го входа прибора*) inp5:BOOL;
    (*состояния 6го входа прибора*) inp6:BOOL;
    (*состояния 7го входа прибора*) inp7:BOOL;
    (*состояния 8го входа прибора*) inp8:BOOL;

    (*код ошибки*) wErrCode:WORD;
    (*флаг завершения*) done:BOOL;
    END_VAR
    VAR
    rtrig:R_TRIG;
    trig:rs;
    ErrCount:BYTE:=0;
    err:WORD;
    cmpl:BOOL;
    Exception: BYTE;
    DataSize: WORD;
    RegAddr:WORD:=16#33;
    get_modbus:MB_RD_HOLD_REGS;
    BUFFER: ARRAY [0..255] OF BYTE;
    x: WORD;
    END_VAR


    done:=FALSE;
    rtrig(clk:=(Enabl));
    trig(set:=rtrig.Q,RESET1:=FALSE);
    get_modbus(
    Enable:=trig.Q1, (* разрешение работы блока *)
    Mode:=Modd , (*режим передачи*)
    DevAddr:=Addr , (*адрес*)
    FirstAddr:=RegAddr , (*номер регистра*)
    Quantity:=1, (*количество регистров*)
    ComHandle:=handle ,(*номер COM-порта*)
    TimeOut:=TimeOut , (*Таймаут T#50ms*)
    Buffer:=Buffer , (* буфер данных *)
    Complete=>cmpl , (* скопировать признак завершения операции *)
    Exception=>err , (* скопировать регистр ошибок *)
    ByteCnt=>DataSize ); (*кол-во считанных байтов *)
    (*если установлен признак завершения операции, то *)

    (*IF SysComRead(handle, ADR(tempBuf), 255, 0, ADR(res)) <> 0 THEN
    err:=0;
    END_IF*)

    IF cmpl THEN
    IF err=0 THEN (*Если нет ошибок, то получаем данные из буфера типа INT*)
    x:=0;
    x:=BYTE_TO_WORD(BUFFER[1]) OR SHL(BYTE_TO_WORD(BUFFER[0]),8);
    inp1:=x.0;
    inp2:=x.1;
    inp3:=x.2;
    inp4:=x.3;
    inp5:=x.4;
    inp6:=x.5;
    inp7:=x.6;
    inp8:=x.7;

    done:=TRUE;
    ErrCount:=0;
    wErrCode:=Err;
    trig(RESET1:=TRUE);

    ELSE
    IF (ErrCount >= ErCL) THEN
    wErrCode:=Err;
    ErrCount:=0;
    done:=TRUE;
    trig(RESET1:=TRUE);
    END_IF
    ErrCount:=ErrCount+1;
    END_IF
    END_IF

    Мне кажется, что достаточно будет задать начальный регистр и количество регистров опрашиваемого ПЛК? И еще в таком случае необходимо будет использовать два блока: на ввод и вывод или нет? Извините если задаю много глупых вопросов

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

    По умолчанию

    как раз так и надо делать, FirstAddr:= начальный регистр, Quantity:= количество регистров, MB_RD_HOLD_REGS только для чтения нескольких регистров

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. RS-485 на ПЛК304
    от Jumo в разделе ПЛК3хх
    Ответов: 13
    Последнее сообщение: 16.10.2013, 10:53
  2. ПЛК304+ТРМ202
    от Антон12345 в разделе ПЛК3хх
    Ответов: 9
    Последнее сообщение: 22.08.2013, 19:53
  3. Передача архива с ПЛК304
    от ISh в разделе ПЛК3хх
    Ответов: 9
    Последнее сообщение: 15.10.2012, 23:17
  4. ПЛК304
    от Pixelcom в разделе ПЛК3хх
    Ответов: 3
    Последнее сообщение: 09.09.2011, 16:39
  5. Linux в ПЛК304
    от Ling-Ling в разделе ПЛК3хх
    Ответов: 6
    Последнее сообщение: 20.05.2011, 01:14

Ваши права

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