Показано с 1 по 10 из 14

Тема: СПК+Термостат по RS485

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от SA104 Посмотреть сообщение
    Осциллограф-главный свидетель обвинения , пока у вас лишь косвенные улики, надежда есть )
    Что за адаптер использовали для проверки термостата из терминала?
    Спасибо, Шерлок)
    Адаптер: ОВЕНовский АС4

  2. #2
    Пользователь
    Регистрация
    09.10.2014
    Адрес
    Киров
    Сообщений
    735

    По умолчанию

    Цитата Сообщение от ChemDevil Посмотреть сообщение
    Адаптер: ОВЕНовский АС4
    Попробуйте китайский "свисток" USB-RS485 для очистки совести..

  3. #3

    По умолчанию

    Итак, сегодня снова добрался до агрегата и почти победил: в терминале отвечает всё как положено. А вот в самом СПК110 возникла загвоздка: приходит, порой, всякая казябра. Поигравшись с таймаутами на чтение (60 мс) и запись (10 мс), а так же с интервалом выполнения цикла (200 мс), стал получать то, что можно увидеть на скрине ниже (очень похоже: должно быть ":160228-M 0x00 000010")

    debug.PNG

    У кого какие мысли: чем выпрямить мои многострадальные руки?)

    Ну и действующий код
    Код:
    PROGRAM PLC_PRG
    VAR
    		SendBuffer : STRING;
    		sendByte: UDINT;
    		readByte: UDINT;
    		RS : STRING:='0';
    		i:INT;
    		y:BYTE:=0;
    		Send_B:BOOL;
    		b_timerIN: BOOL;
    		b_timerOUT:BOOL;
    		SendPeriod:TON;
    END_VAR
    IF COM_SERVICE3.Ready=FALSE THEN
    	OpC3();(*Программа открытия порта с настройками*)
    END_IF
    
    IF COM_SERVICE3.Ready=TRUE THEN
    		IF Send_B=TRUE THEN
    		SendBuffer:= ':160228-m alm.status rd$R';
    		y:= INT_TO_BYTE(LEN(SendBuffer));
    		sendByte:=ComSerice.SysComWrite(COM_SERVICE3.handle,ADR(sendBuffer),y,10,0);
    		Send_B:=FALSE;
    	END_IF
    	readByte:=ComSerice.SysComRead(COM_SERVICE3.handle,ADR(RS[0]),30,60,0);
    END_IF
    SendPeriod(IN:=b_timerIN , PT:=T#500MS , Q=>b_timerOUT);(*Интервал отправки*)
    IF b_timerIN=FALSE THEN
    	b_timerIN:=TRUE;
    END_IF
    IF b_timerOUT=TRUE THEN
    	b_timerIN:=FALSE;
    	Send_B:=TRUE;
    END_IF

Похожие темы

  1. СПК110 + термостат(RS-485)
    от barsik в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 05.07.2016, 07:31
  2. ТРМ 201 комнатный термостат
    от Боднар Олег Миколайович в разделе Подбор Оборудования
    Ответов: 24
    Последнее сообщение: 15.12.2015, 16:37
  3. Автоматизирую жидкостный термостат
    от Александр Васильевич в разделе Эксплуатация
    Ответов: 18
    Последнее сообщение: 25.04.2014, 12:35
  4. СИ-8 RS485
    от afsh в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 04.04.2011, 12:45
  5. плк 110 + сп 270 + чп по Rs485
    от Wanted в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 21.04.2010, 10:06

Ваши права

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