Показано с 1 по 3 из 3

Тема: Опять 25

  1. #1

    По умолчанию Опять 25

    Здравствуйте, Уважаемые гуру!

    Я начинающий программист ПЛК ОВЕН, первый проект.

    Прочитал все инструкции по подключению МВ к ПЛК. Посмотрел видео, но что-то все равно не получается.

    Проект на ST. Codesys v3.4 patch2 без HF1. (Недоступно для скачивания на Вашем сайте)
    Подключены библиотеки: ModBus, ComSerice, SysLibCom.
    Описание переменных:
    Код:
    PROGRAM PLC_PRG
    VAR
    	get1_modbus: MB_RD_HOLD_REGS;
    	t: DWORD;
    	a: WORD:=0;
    	port_opened: BYTE:=0;
    	Settings: COMSERICE.SysCom.COM_Settings;
    	SettingsEx: COMSERICE.SysCom.COM_SettingsEx;	
    	Com_service1:Com_service;
    	master1: BYTE:=1;
    	enabl: BOOL;
    	TimeOut: TIME:=T#50ms;
    	Buffer: ARRAY [0..255] of byte;
    	Complete: BOOL;
    	err: INT;
    	Exception: INT;
    	ByteCnt: WORD;
    	cmpl: BOOL;
    	x: WORD;
    	DataSize: BYTE;
    END_VAR
    Тело программы:
    Код:
    IF port_opened=0 THEN
    	Settings.sPort:=0;
    	Settings.ulBaudRate:=115200;
    	Settings.byParity:=0;
    	Settings.ulTimeOut:=0;
    	Settings.byStopBits:=0;
    	Settings.ulBufferSize:=0;
    	SettingsEx.byByteSize:=8;
    	SettingsEx.bBinary:=TRUE;
    COM_SERVICE1(Enable:=(port_opened=0), Settings:=Settings, (*sets_ex:=Setting*****) Task:=OPEN_TSK);
    END_IF
    IF COM_SERVICE1.ready THEN
    	port_opened:=2;
    END_IF
    IF port_opened=2 THEN
    get1_modbus(
    	Enable:=enabl,
    	Mode:=MB_RTU,
    	DevAddr:=16,
    	FirstAddr:=51,
    	Quantity:=1,
    	ComHandle:=Settings.sPort,
    	TimeOut:=TimeOut,
    	Buffer:=Buffer,
    	Complete=>cmpl,
    	Exception=>err,
    	ByteCnt=>DataSize);
    IF cmpl THEN
    	IF err=0 THEN
    		x:=BYTE_TO_WORD(BUFFER[1]) OR SHL(BYTE_TO_WORD(BUFFER[0]),8);
    	END_IF
    END_IF
    IF enabl=FALSE THEN
    	enabl:=TRUE;
    END_IF
    IF err<>0 THEN
    	enabl:=FALSE;
    END_IF
    END_IF
    Загружаю, запускаю и COm_SERVICE1.READY всегда FALSE.
    Немогу понять почему? Подскажите пожалуйста.
    Заранее благодарен!

  2. #2

    По умолчанию

    Думаю только из-за этой проблемы и не опрашивает. Остальное должно быть ОК.
    Может быть не ту функцию использую для открытия порта?
    Прилагаю картинку с выполнением кода.
    Изображения Изображения

  3. #3

    По умолчанию

    исправьте
    Settings.sPort:=0;
    на
    Settings.sPort:=1;
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

Ваши права

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