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

Тема: ПЛК100 R.L. ,MODBUS и iridium

  1. #11

    По умолчанию

    Здравствуйте. Вышлите Ваш проект на ПЛК, сделаю примерчик на иридиуме.

  2. #12
    Пользователь
    Регистрация
    18.03.2010
    Адрес
    Ростов-на-Дону
    Сообщений
    35

    По умолчанию

    В Codesys создается modbus slave с необходимыми переменными(например 8bits для 8-ми bool переменных-входов или выходов типа реле).
    В iridium создается драйвер modbus tcp:
    - в драйвере прописываете ip контроллера(порт оставляй 502)
    - в графе Commands создаешь команды для посылки на контроллер(device id - номер slavr переменной -1, adress номер бита от 0 до 7).
    - в графе Feedback прописывается аналогично commands, но для тех переменных значения которых должны возвращаться в iridium из ПЛК.
    Насчет увязки переменных с входами я решал эту проблему присвоением значений промежуточных slave переменных входам/выходам по маске.

    Если интересно кинь свой проект в codesys я под него помогу прописать переменные в iridium.

    p.s. 1.входа опрашивай обязательно по маске ибо при обращении к стандартным входам очень тормозит их опрос.
    2. обязательно проверь настройки роутера(приоритет на 502 порт. я например долго мучился с запаздыванием или потерей команд от iridium к плк.

  3. #13

    По умолчанию

    Цитата Сообщение от DIABLik Посмотреть сообщение
    В Codesys создается modbus slave с необходимыми переменными(например 8bits для 8-ми bool переменных-входов или выходов типа реле).
    В iridium создается драйвер modbus tcp:
    - в драйвере прописываете ip контроллера(порт оставляй 502)
    - в графе Commands создаешь команды для посылки на контроллер(device id - номер slavr переменной -1, adress номер бита от 0 до 7).
    - в графе Feedback прописывается аналогично commands, но для тех переменных значения которых должны возвращаться в iridium из ПЛК.
    Насчет увязки переменных с входами я решал эту проблему присвоением значений промежуточных slave переменных входам/выходам по маске.

    Если интересно кинь свой проект в codesys я под него помогу прописать переменные в iridium.

    p.s. 1.входа опрашивай обязательно по маске ибо при обращении к стандартным входам очень тормозит их опрос.
    2. обязательно проверь настройки роутера(приоритет на 502 порт. я например долго мучился с запаздыванием или потерей команд от iridium к плк.
    Подскажите, что значит опрашивать по маске?
    У меня сейчас как раз возникла проблема, что при нажатии на кнопку в иридиуме пауза между срабатыванием ПЛК около 5 секунд.

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

    Код:
    PROGRAM PLC_PRG
    VAR_OUTPUT
    	off_all:BOOL;
    	off_kitchen_dining_room:BOOL;
    END_VAR
    VAR
    	HALLWAY_STEP: BYTE;
    	BEDROOM_STEP: BYTE;
    	KITCHEN_STEP: BYTE;
    	DINING_ROOM_STEP: BYTE;
    	NURSERY_STEP: BYTE;
    
    	SWITCH_HALLWAY: R_TRIG;
    	SWITCH_BEDROOM: R_TRIG;
    	SWITCH_KITCHEN: R_TRIG;
    	SWITCH_DINING_ROOM: R_TRIG;
    	SWITCH_NURSERY: R_TRIG;
    	TON_ALL: TON;
           TON_KITCHEN_DINING_ROOM: TON;
    	pt: TIME := t#3s;
    END_VAR
    
    ___________________________________________________
    
    TON_ALL(IN:=input_1 , PT:=pt , Q=> , ET=> );
    TON_KITCHEN_DINING_ROOM(IN:=input_4 , PT:=pt , Q=> , ET=> );
    SWITCH_HALLWAY(CLK:=input_1 , Q=> );
    SWITCH_BEDROOM(CLK:=input_2 , Q=> );
    SWITCH_KITCHEN(CLK:=input_3 , Q=> );
    SWITCH_DINING_ROOM(CLK:=input_4 , Q=> );
    SWITCH_NURSERY(CLK:=input_5 , Q=> );
    
    
    CASE HALLWAY_STEP OF
    0:
    	IF SWITCH_HALLWAY.Q THEN
    		output_1:=TRUE;
    		HALLWAY_STEP:=1;
    	END_IF
    1:
    	IF SWITCH_HALLWAY.Q THEN
    		output_1:=FALSE;
    		HALLWAY_STEP:=0;
    	END_IF
    END_CASE
    
    CASE BEDROOM_STEP OF
    0:
    	IF SWITCH_BEDROOM.Q THEN
    		output_2:=TRUE;
    		BEDROOM_STEP:=1;
    	END_IF
    1:
    	IF SWITCH_BEDROOM.Q THEN
    		output_2:=FALSE;
    		BEDROOM_STEP:=0;
    	END_IF
    END_CASE
    
    CASE KITCHEN_STEP OF
    0:
    	IF SWITCH_KITCHEN.Q THEN
    		output_3:=TRUE;
    		KITCHEN_STEP:=1;
    	END_IF
    1:
    	IF SWITCH_KITCHEN.Q THEN
    		output_3:=FALSE;
    		KITCHEN_STEP:=0;
    	END_IF
    END_CASE
    
    CASE DINING_ROOM_STEP OF
    0:
    	IF SWITCH_DINING_ROOM.Q THEN
    		output_4:=TRUE;
    		DINING_ROOM_STEP:=1;
    	END_IF
    1:
    	IF SWITCH_DINING_ROOM.Q THEN
    		output_4:=FALSE;
    		DINING_ROOM_STEP:=0;
    	END_IF
    END_CASE
    
    CASE NURSERY_STEP OF
    0:
    	IF SWITCH_NURSERY.Q THEN
    		output_5:=TRUE;
    		NURSERY_STEP:=1;
    	END_IF
    1:
    	IF SWITCH_NURSERY.Q THEN
    		output_5:=FALSE;
    		NURSERY_STEP:=0;
    	END_IF
    END_CASE
    (*Âûêëþ÷åíèå ñâåòà âî âñåé êâàðòèðå*)
    off_all:=TON_ALL.Q;
    IF off_all THEN
    	output_1:=FALSE;
           HALLWAY_STEP:=0;
    	output_2:=FALSE;
           BEDROOM_STEP:=0;
    	output_3:=FALSE;
           KITCHEN_STEP:=0;
    	output_4:=FALSE;
    	DINING_ROOM_STEP:=0;
           output_5:=FALSE;
    	NURSERY_STEP:=0;
    END_IF
    (*Âûêëþ÷åíèå ñâåòà â êóõíå-ñòîëîâîé*)
    off_kitchen_dining_room:=TON_KITCHEN_DINING_ROOM.Q;
    IF off_kitchen_dining_room THEN
    	output_3:=FALSE;
           KITCHEN_STEP:=0;
    	output_4:=FALSE;
    	DINING_ROOM_STEP:=0;
    END_IF
    
    output_1:=ir_input_1;
    output_2:=ir_input_2;
    output_3:=ir_input_3;
    output_4:=ir_input_4;
    output_5:=ir_input_5;
    Настройки ПЛК
    PLK100R-L.png

  4. #14
    Пользователь
    Регистрация
    18.03.2010
    Адрес
    Ростов-на-Дону
    Сообщений
    35

    По умолчанию

    В твоем случае опрос по маске может и не нужен, это имеет смысл при подключенных модулях ввода/вывода(МДВВ, МВ11х...)
    Его смысл не побитно считывать переменные(input_1, input_2...), а вместо этого считать один раз байт с 8-ю битами входов.
    Как это сделать?!
    Необходимо ветке с входами присвоить переменную "PLCinp" типа BYTE и обращаться ко входам следующим образом:
    для твоего input_1 соответственно PLCinp.0,
    input_8 соответственно PLCinp.7.

    такая схема существенно ускоряет опрос. Но это при работе с модулями Ввода/Вывода.

  5. #15
    Пользователь
    Регистрация
    18.03.2010
    Адрес
    Ростов-на-Дону
    Сообщений
    35

    По умолчанию

    На мой взгляд немного сложновато происходит обработка нажатий.
    Например вместо:

    CASE HALLWAY_STEP OF
    0:
    IF SWITCH_HALLWAY.Q THEN
    output_1:=TRUE;
    HALLWAY_STEP:=1;
    END_IF
    1:
    IF SWITCH_HALLWAY.Q THEN
    output_1:=FALSE;
    HALLWAY_STEP:=0;
    END_IF
    END_CASE

    Предлагаю такой вариант:

    SWITCH_HALLWAY(CLK:=PLCInp.0 , Q=> );
    ir_input_1:= ir_input_1 XOR SWITCH_HALLWAY.Q;

  6. #16
    Пользователь
    Регистрация
    18.03.2010
    Адрес
    Ростов-на-Дону
    Сообщений
    35

    По умолчанию

    По поводу задержки срабатывания. Проверь устанавливается ли соединение Иридиум с ПЛК. это можно сделать индикацией токена Online в параметрах ModbusTCP->driver token. проблема может быть в роутере сети.
    По поводу отсутствия реакции на замыкания входов.
    Этот код
    output_1:=ir_input_1;
    output_2:=ir_input_2;
    output_3:=ir_input_3;
    output_4:=ir_input_4;
    output_5:=ir_input_5;

    Делает следующее. При любых присвоениях переменным output_ в течение цикла, в его конце ПЛК присвоит им значения ir_input_
    Чтобы это избежать лучше в течении цикла менять промежуточные переменные ir_input_, а в конце так и оставить присвоение промеж. переменной на выход ПЛК.

    p.s. НЕ ПРЕТЕНДУЮ НА АБСОЛЮТНУЮ ПРАВИЛЬНОСТЬ СВОИХ ПРЕДЛОЖЕНИЙ, НО У МЕНЯ ЭТО ВСЕ РАБОТАЕТ.

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

Похожие темы

  1. ПЛК Овен и ПО Iridium
    от DIABLik в разделе Разработки
    Ответов: 21
    Последнее сообщение: 18.01.2013, 12:21
  2. Modbus Universal MasterOPC+ПЛК100
    от Адлан в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 08.11.2012, 08:09
  3. ПЛК100 и Modbus.lib
    от Slev в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 19.03.2012, 08:22
  4. ПЛК100 и ModBus
    от Скрипник Александр в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 02.02.2010, 14:05
  5. Modbus/TCP и ПЛК100
    от zilog в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 31.03.2008, 10:31

Ваши права

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