Страница 547 из 1044 ПерваяПервая ... 47447497537545546547548549557597647 ... ПоследняяПоследняя
Показано с 5,461 по 5,470 из 10436

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #5461

    По умолчанию

    Как загружать изменения в проект, чтобы не обнулились Retain-переменные, к примеру, счетчик моточасов? Если загружать только online-изменения, то при выключении питания изменения не сохраняются, в иных случаях обнуляются Retain.

  2. #5462

    По умолчанию

    Если есть способ при заливке не трогать ретейн, то я тоже хотел бы знать. Если нет, то вместо ретейн используй запись в файл (лучше на флешке). При перезаливке проекта файлы не трогаются.

  3. #5463

    По умолчанию

    Цитата Сообщение от Drahtor Посмотреть сообщение
    Как загружать изменения в проект, чтобы не обнулились Retain-переменные, к примеру, счетчик моточасов? Если загружать только online-изменения, то при выключении питания изменения не сохраняются, в иных случаях обнуляются Retain.
    Изначально, в это м вопросе имелся в виду CDS 3.5, но оказалось, что чуть-чуть перепутал с веткой. Так что, если есть принципиальные отличия от CDS2.3, хотелось бы это узнать

  4. #5464

    По умолчанию

    Здравствуйте , подскажите пожалуйста как написать программу для ПЛК73 , к которому подключён датчик ДТС125л в комплекте с НПТ по сигналу 4..20 . Программа должна выводить значение температуры на ЖКИ

  5. #5465

    По умолчанию

    Здравствуйте! Выявилась непонятная для меня проблема. Есть программа, в которой опрашиваются модули ввода/вывода:

    Код:
    	CASE casestate OF
    		0:
    			IF enMU16R_1 THEN
    
    				MU16R_1(
    					enable:= TRUE, setMask:= bitMaskMU16R_1,	devAdress:= addrMU16R_1, portNum:= portNum, timeout:= toutMU16R_1, max_try_count:= mtcMU16R_1, timerOff:= tOffMU16R_1,
    					Done=> ,
    					Data=> ,
    					ErrSet=> 			errCommModuls.MU16R_1_set,
    					ErrGet=> 			errCommModuls.MU16R_1_get,
    					CodeErrSet=> ,
    					CodeErrGet=> ,
    					CountErr=>		 countErrMU16R_1);
    				IF MU16R_1.Done THEN	SysMemCpy(ADR(dataMU16R_1), ADR(MU16R_1.Data),2); MU16R_1(	enable:= FALSE); casestate := 1; END_IF;
    			ELSE casestate := 1; MU16R_1(	enable:= FALSE);
    			END_IF;
    
    		1:
    			IF enMV16DN_1 THEN
    
    				MV16DN_1(
    					enable:=  TRUE, devAdress:= addrMV16DN_1, portNum:= portNum, timeout:= toutMV16DN_1, max_try_count:= mtcMV16DN_1, timerOff:= tOffMV16DN_1,
    					Done=> ,
    					Data=> ,
    					Err=> 			errCommModuls.MV16DN_1_get,
    					CodeErr=>,
    					CountErr=>	countErrMV16DN_1);
    				IF MV16DN_1.Done THEN
    					IF NOT MV16DN_1.Err THEN
    						SysMemCpy(ADR(DataMV16DN_1), ADR(MV16DN_1.Data),2);
    					END_IF;
    					MV16DN_1(enable:=  FALSE); casestate := 2;
    				END_IF;
    			ELSE casestate := 2;
    			END_IF;
    Выделенным копирую полученные в ФБ WORD в булевые структуры:
    МУ16Р:
    TYPE dataMU16R :
    STRUCT
    offVv1energ :BOOL :=FALSE; (* Отключение 380 в от привода задвижки Резервуар №1 *)
    offVv2energ :BOOL :=FALSE; (* Отключение 380 в от привода задвижки Резервуар №2 *)
    offVv3energ :BOOL :=FALSE; (* Отключение 380 в от привода задвижки Резервуар №3 *)
    offVv4energ :BOOL :=FALSE; (* Отключение 380 в от привода задвижки Резервуар №4 *)
    ZonaBalarm :BOOL :=FALSE; (* Авария зоны С *)
    rez1 :BOOL :=FALSE; (* Резервный вход 1 *)
    rez2 :BOOL :=FALSE; (* Резервный вход 2 *)
    rez3 :BOOL :=FALSE; (* Резервный вход 3 *)
    ventKF1OnOff :BOOL :=FALSE; (* Вентилятор камеры фильтров №3 Вкл\Откл *)
    ventKF1OffEnerg :BOOL :=FALSE; (* Отключение 380 в от вентилятора камеры фильтров №3 при пожаре *)
    vKlap1close :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №3 закрыть *)
    vKlap1open :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №3 открыть *)
    ventKF2OnOff :BOOL :=FALSE; (* Вентилятор камеры фильтров №4 Вкл\Откл *)
    ventKF2OffEnerg :BOOL :=FALSE; (* Отключение 380 в от вентилятора камеры фильтров №4 при пожаре *)
    vKlap2close :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №4 закрыть *)
    vKlap2open :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №4 открыть *)
    END_STRUCT
    END_TYPE


    МВ16ДН:
    TYPE dataMV16 :
    STRUCT
    KF1auto :BOOL :=FALSE; (* Оборудование камеры фильтров №3 управляется в автоматическом (дистанционном) режиме *)
    ventKF1avaria :BOOL :=FALSE; (* Авария по току вентилятора камеры фильтров №3 *)
    vKlap1opened :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №3 открыт *)
    vKlap1closed :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №3 закрыт *)
    KF2auto :BOOL :=FALSE; (* Оборудование камеры фильтров №4 управляется в автоматическом (дистанционном) режиме *)
    ventKF2avaria :BOOL :=FALSE; (* Авария по току вентилятора камеры фильтров №4 *)
    vKlap2opened :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №4 открыт *)
    vKlap2closed :BOOL :=FALSE; (* Воздушный клапан камеры фильтров №4 закрыт *)
    zatopl12 :BOOL :=FALSE; (* Затопление колодца задвижки резервуара №1 *)
    offLev12 :BOOL :=FALSE; (* Уровень отключения питания задвижки резервуара №1 *)
    zatopl3 :BOOL :=FALSE; (* Затопление колодца задвижки резервуара №2 *)
    offLev3 :BOOL :=FALSE; (* Уровень отключения питания задвижки резервуара №2 *)
    zatopl4 :BOOL :=FALSE; (* Затопление колодца задвижки резервуара №3,4 *)
    offLev4 :BOOL :=FALSE; (* Уровень отключения питания задвижки резервуара №3,4 *)
    rezerv1 :BOOL :=FALSE;
    rezerv2 :BOOL :=FALSE;
    END_STRUCT
    END_TYPE


    Данные структуры объявлены в глобальных переменных (возможно это не правильно):
    Код:
    	dataMV16DN_1				:dataMV16;				(* структура данных с модуля дискретного ввода МВ110-16ДН *)
    	dataMU16R_1				:dataMU16R;			(* структура данных модуля релейногых выходов МВ110-16Р (аналогична битовой маске) *)
    Так вот, маска считанных выходов из модуля МУ16Р копируется нормально, а маска входов с МВ16ДН не копируется - два первых входа в ошибке висят, остальные по нулям. Не могу понять что не так, в структуру больше нигде ничего не пишется, только читается.

    Также есть структура:
    Код:
    TYPE sendHMI :
    STRUCT
    	mu16rHMI					:WORD :=0;				(* состояние выходов модуля дискр. вывода МУ110-16Р для HMI *)						(* 7 *)
    	md16dnHMI					:WORD :=0;				(* состояние входов модуля дискр. ввода МВ110-16ДН для HMI *)						(* 8 *)
    END_STRUCT
    END_TYPE
    в которую в другой программе пишутся данные:
    Код:
    SysMemCpy(ADR(HMIsend1.mu16rHMI),ADR(DataMU16R_1),2);
    SysMemCpy(ADR(HMIsend1.md16dnHMI),ADR(DataMV16DN_1),2);
    где DataMU16R_1 и DataMV16DN_1 - те же структуры из глобальных переменных, и получаю HMIsend1.mu16rHMI и HMIsend1.md16dnHMI равными 0. Сломал голову, причину не выяснил. Что здесь не так?

  6. #5466

    По умолчанию

    Здравствуйте. Вопрос такой есть удаленный объект на котором стоит плк и другой объект где стоит такой же плк. Может плк второго объекта управлять первым и наоборот. как реалезовать это?если есть пример буду очень благодарен.

  7. #5467
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,665

    По умолчанию

    evgens4 может, поднять каналы связи между объектами .

  8. #5468

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Не так понимание типов данных и их внутреннего представления.
    Возможно, не спорю
    Но казалось бы Word - 2 байта (16 бит), структура также 2 байта (16 бит - 16 булевых переменных). Почему нельзя скопировать одно в другое?

  9. #5469

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Возможно, не спорю
    Но казалось бы Word - 2 байта (16 бит), структура также 2 байта (16 бит - 16 булевых переменных). Почему нельзя скопировать одно в другое?
    В структуре один BOOL это 8 бит.

  10. #5470

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    В структуре один BOOL это 8 бит.
    Чёрррт! Тяжело быть идиотом)

    RV9WFJ, спасибо

    Блин, как бы элегантно придумать теперь замену, а то по 16 строк переприсвоения совсем не смотрятся....

    В конфигурации с дискретными входами/выходами это как то сделано

Страница 547 из 1044 ПерваяПервая ... 47447497537545546547548549557597647 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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