Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 19 из 19

Тема: ПЛК63+RS485

  1. #11

    По умолчанию

    Добрый день, прошло 10 лет, всплыл такой же вопрос: "....При выполнении программы она подсвечивается красным цветом и добавляется надпись ***INVALID: 0***
    Видимо поэтому Com-порт не открывается..."
    При этом совсем недавно....... связь была. В чем дело? Пожалуйста помогите

  2. #12

    По умолчанию

    Цитата Сообщение от Иван_Васильев Посмотреть сообщение
    Добрый день, прошло 10 лет, всплыл такой же вопрос: "....При выполнении программы она подсвечивается красным цветом и добавляется надпись ***INVALID: 0***
    Видимо поэтому Com-порт не открывается..."
    При этом совсем недавно....... связь была. В чем дело? Пожалуйста помогите
    Даже с ошибкой ***INVALID: 0*** программа работает, выше вам уже ответили.
    Если она работала и перестала, значит либо провода оборвались, либо контакт плохой, либо слейв помер.
    Последний раз редактировалось kondor3000; 16.12.2024 в 13:49.

  3. #13

    По умолчанию

    Уважаемые специалисты! Помогите разобраться со следующей проблемой.
    ПЛК63-РРРРРР-М пытаюсь соединить с МДВВ по интерфейсу RS485. Протокол Modbus RTU. 9600N1.
    Я воспользовался примерами и написал пробную программу, которая читает состояние регистра дискретных входов(0х33) МДВВ и записывает это состояние в регистр дискретных выходов(0х32) МДВВ.
    В прикреплённом файле prb120708_1 приведён исходный текст отлаженной работоспособной программы. Но имеется несколько вопросов и комментариев.

    1. В примерах программ дан следующий фрагмент кода, открывающий порт
    (*Открываем COM-порт*)
    (*COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK );*)
    COM_SERVICE1(Enable:=TRUE , Settings:=Settings , Task:=OPEN_TSK );
    (*Если COM-порт открыт, то переходим к приему и передачи данных *)
    IF COM_SERVICE1.ready
    THEN
    port_opened:=2;
    ELSE
    COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=CLOSE_TSK );
    END_IF;

    При таком коде порт у меня не открывается. Для открытия порта использую следующий фрагмент кода

    COM_SERVICE1(Enable:=TRUE , Settings:=Settings , Task:=OPEN_TSK );
    (*Если COM-порт открыт, то переходим к приему и передачи данных *)
    IF COM_SERVICE1.ready
    THEN
    port_opened:=2;
    END_IF;

    2. Библиотечная функция COM_SERVICE1, оказывается, пытается открывать порт только при каждом сотом обращении к ней. В начале этой функции есть следующий текст
    Delay := Delay + 1;
    IF (Delay MOD 100) = 0 THEN ..

    Этот недостаток для моего приложения не является существенным, просто система начнёт работать на 15-20 секунд позже включения питания

    3. Функции
    get04_modbus: MB_RD_INP_REGS; (*функция 04 - чтение параметров типа INT*)
    send16_modbus: MB_WR_REGS; (*функция 16 - запись параметров*)

    используются для чтения и записи параметров в MДВВ.

    Но требуется 4 раза подряд обратиться к функции get04_modbus прежде получить правильный ответ, и требуется 3 раза подряд обратиться к функции send16_modbus прежде получить правильный ответ.
    Это настораживает. Я подсчитал отношение числа запросов к числу правильных ответов. Это отношение оказывается постоянным, значит, эти сбои не являются случайными, а связаны с какой-то моей ошибкой. Прошу ответить тех, кто имеет какие-то соображения на этот счёт Пожалуйста помогите

  4. #14

    По умолчанию

    Берёте готовый пример с сайта, чтение через биб-ки (Modbus чтение INT и REAL (ST) и смотрите отличия в коде.
    Чтение и запись надо разнести по шагам CASE.
    В конце каждого шага чтения, есть проверка на выполнение операции, на ошибки и присвоение, если ошибки =0.
    Код:
    (*если установлен признак завершения операции, то *)
    IF cmpl THEN
    	IF err=0 THEN (*Если нет ошибок, то получаем данные из буфера типа INT*)
    		x:=BYTE_TO_WORD(BUFFER[1]) OR SHL(BYTE_TO_WORD(BUFFER[0]),8);
    	END_IF
    	master1:=1; (*переходим к выполнению следующего ФБ*)
    END_IF
    С записью аналогично, переход, если установлен признак завершения операции.

    Примеры для ПЛК63/73,
    10) Обмен через библиотеки Modbus и OwenNet https://owen.ru/product/codesys_v2/example_program
    Последний раз редактировалось kondor3000; 17.12.2024 в 09:04.

  5. #15

    По умолчанию

    Спасибо Вам!!! Чувствую - мы уже близко)) А КАК??? Открывая библиотечный файл блокнотом - не удается его сохранить ("отказано в доступе"). Открывая в codesys это библиотечный файл - codesys запрашивает пароль. Научите пожалуйста ... как вписать это COM0:=0 ?

  6. #16

    По умолчанию

    Цитата Сообщение от Иван_Васильев Посмотреть сообщение
    Спасибо Вам!!! Чувствую - мы уже близко)) А КАК??? Открывая библиотечный файл блокнотом - не удается его сохранить ("отказано в доступе"). Открывая в codesys это библиотечный файл - codesys запрашивает пароль. Научите пожалуйста ... как вписать это COM0:=0 ?
    Биб-ку надо открыть как проект и менять уже в в стуктуре проекта, потом сохранить как .Lib. Потом заменить в папке биб-ки Codesis 2.3
    Отказано в доступе, значит надо зайти под админом.

  7. #17

    По умолчанию

    Спасибо!!!!!
    Изображения Изображения
    Последний раз редактировалось Иван_Васильев; 17.12.2024 в 11:56.

  8. #18

    По умолчанию

    Цитата Сообщение от Иван_Васильев Посмотреть сообщение
    Как найти этот элемент структуры TYPE PORTS ?
    Надо перейти на вкладку "Типы данных" Clip.gif
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  9. #19

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. ПЛК63 и RS485
    от Nick_V1 в разделе Помощь Разработчикам
    Ответов: 9
    Последнее сообщение: 14.11.2011, 18:23
  2. СИ-8 RS485
    от afsh в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 04.04.2011, 13:45
  3. Usb-rs485
    от Bobilnik в разделе Эксплуатация
    Ответов: 13
    Последнее сообщение: 25.03.2009, 12:02
  4. ПЛК - rs485 - СИ8
    от Максим_Фалалеев в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 16.09.2008, 14:23
  5. Rs485
    от незарегистрированный в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 17.03.2008, 10:56

Ваши права

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