Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 23

Тема: Задание контроллеру из двух мест

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

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Boris_K
    Не могу понять как прописать команду на запись уставки. Код
    Код:
    IF ust1<>0 THEN
    	CASE ust1 OF
    	sm_ust_hh:
    	hh_day:=ip_hh_day;
    	p_hh_day:= hh_day;
    	os_hh_day:= hh_day;
    	END_CASE;
    ust1:=0;
    END_IF
    выдает ошибку:
    Требуется целое число или символьная константа
    Необходимо Число, 'ELSE' или 'END_CASE'

    Пробовал разные варианты, но ни один не работает. Что не правильно я прописываю, с CASE ещё не сталкивался особо, плохо понимаю принцип кода
    ip_hh_day, p_hh_day, os_hh_day - сделал разные регистры
    в первоисточнике не пробовали прочитать http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  2. #12

    По умолчанию

    См. мой пост выше, я дополнил.

  3. #13
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,567

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Boris_K
    Требуется целое число или символьная константа
    см.пост #11. Особенно обратите внимание на подчеркнутое

    Цитата Сообщение от energvk Посмотреть сообщение
    Boris_K
    ip_hh_day, p_hh_day, os_hh_day - сделал разные регистры

  4. #14

    По умолчанию

    Решил пока с CASE не заморачиваться, так как с IFами должно работать. В общем, добился хоть какого-нибудь результат с кодом:
    Код:
    IF NOT strt_panel THEN
    		p_hh:=hour;
    		p_mm:=minute;
    		p_ss:=second;
    		p_dd:=day;
    		p_mh:=month;
    		p_yy:=year;
    IF p_hh_day<>hh_day THEN
    hh_day:=p_hh_day;
    os_hh_day:=hh_day;
    END_IF;
    		p_hh_day:=hh_day;
    
    	IF  b_modemLine=3 THEN
    
    IF is_hh_day<>os_hh_day THEN
    	hh_day:=is_hh_day;
    	p_hh_day:=hh_day;
    END_IF;
    			os_hh_day:=hh_day;
    	END_IF;
    END_IF;
    При этом переменные на один регистр завязал
    1.PNG 2.PNG

    Проблема, как я понял, кроется в скорости обмена данными со скадой по gprs. То есть алгоритм работает, если ставить задержку на
    Код:
    IF is_hh_day<>os_hh_day THEN
    /*Здесь нужна задержка*/	
    hh_day:=is_hh_day;
    	p_hh_day:=hh_day;
    END_IF;
    Но время этой задержки из-за gprs вычислить нереально и соответственно изменение уставки срабатывает через раз.

    в первоисточнике не пробовали прочитать http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf
    Читал, я конечно, общую суть понял, но не сообразил пока как это применить к своему случаю, на досуге ещё покумекаю конечно.

    В общем, пока ломаю голову дальше...

    p.s. насчёт табов понятно, просто пока тестю, мне так нагляднее, где что меняю
    Последний раз редактировалось energvk; 30.09.2014 в 13:12.

  5. #15

    По умолчанию

    Не очень понял мысль насчёт задержки, но сомневаюсь что там где-то нужна задержка, это противоречит самой сути задачи, 95% что это неправильный путь. Или вам важно именно отследить момент, что в действительности сменило уставку последним - панель или скада, даже если разница в 1 секунду? Если да, то можно например вместе с новой уставкой передавать точное время в миллисекундах, которое было на тот момент, конечно тогда нужно будет его периодически синхронизировать, чтобы не успевала набежать значительная ошибка.

  6. #16
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,341

    По умолчанию

    Цитата Сообщение от kanadchikov Посмотреть сообщение
    Уважаемы, помогите решить задачу. Имеется контроллера ПЛК-154, сенсорная панель, СКАДА. Панель (modbus мастер) подключена к ПЛК по RS485. Контроллер подключен к СКАДе по Modbus TCP и является slave. Как навести мосты, чтобы уствавки можно было менять из двух мест?
    Соседняя тема http://www.owen.ru/forum/showthread.php?t=18199 заставила перечитать "owen_plc-configuration.pdf".
    Если ПЛК является слейвом для обоих мест, то возможно два варианта решения доступа к одним и тем же переменным из разных мест без копирования в промежуточные переменные
    1. Использовать несколько портов для одного Modbus Slave
    1.png---->2.png
    Для этого варианта все переменные будут общими для обоих мест.
    2. Вставить Modbus Slave в другой Modbus Slave
    3.png----->4.png
    Для этого варианта только переменные встроенного Modbus Slave общими для обоих мест.
    Второй вариант наверно можно приспособить и для случая, когда для одного места ПЛК слейв, а для другого мастер.
    26 лет деятельности в области промышленной безопасности

  7. #17

    По умолчанию

    petera
    Спасибо, это должно решить проблему и ощутимо уменьшить и упростить код. Буду тестить...

  8. #18
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,341

    По умолчанию

    Когда ПЛК является слейвом для обоих мест, то оба варианта работают на ура.
    Но если мастер встроить в слейв, то слейв реально видит(и читает и пишет) во вложенном мастере только модули Register output, а Register input всегда отображаются в слейве с нулевым содержимым.
    26 лет деятельности в области промышленной безопасности

  9. #19

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Когда ПЛК является слейвом для обоих мест, то оба варианта работают на ура.
    Но если мастер встроить в слейв, то слейв реально видит(и читает и пишет) во вложенном мастере только модули Register output, а Register input всегда отображаются в слейве с нулевым содержимым.
    То есть, я правильно понимаю, что в данном случае если панель (мастер) записывает в Register input значение, что плк его не увидит? Если так, то это не вариант конечно.

  10. #20
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,567

    По умолчанию

    SysLibCom - и область io-мастера легко совмещается со слейвом. В любом количестве

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

Похожие темы

  1. Управление из 2-х мест
    от Солнечный заяц в разделе СПК2хх
    Ответов: 16
    Последнее сообщение: 21.09.2014, 15:33
  2. Задание IP-адреса ПЛК
    от Frayl в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 21.08.2012, 10:46
  3. Ответов: 2
    Последнее сообщение: 30.05.2012, 14:27
  4. подключение трм-32 к своему контроллеру
    от Кирилюк Виктор в разделе Помощь Разработчикам
    Ответов: 6
    Последнее сообщение: 11.11.2010, 17:00
  5. тех задание
    от Алексей Zagen в разделе Наши проекты
    Ответов: 3
    Последнее сообщение: 06.06.2010, 20:13

Ваши права

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