Страница 650 из 1041 ПерваяПервая ... 150550600640648649650651652660700750 ... ПоследняяПоследняя
Показано с 6,491 по 6,500 из 10404

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

  1. #6491

    По умолчанию

    Потерялась при копировании, вставке. Код пробую пока на эмуляторе.

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

    По умолчанию

    Да недоговаривает.
    Есть куча способов облажаться на таких примитивных строках и стучатся на форум с ребусом.
    Весь проект - где ?

  3. #6493

    По умолчанию

    У меня есть ПР200, нужно сделать юстировку AI (датчик 4-20мА). Вопрос: Можно ли это сделать с помощью РЗУ-420 и как?

  4. #6494

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Да недоговаривает.
    Есть куча способов облажаться на таких примитивных строках и стучатся на форум с ребусом.
    Весь проект - где ?
    Попробовал отдельно, работает. Программа скорее всего увесистая получилась и данный цикл ее добивает
    совместно с Modbus.lib.
    Всем спасибо.

  5. #6495

    По умолчанию

    Цитата Сообщение от Andrew_Stranger Посмотреть сообщение
    Попробовал отдельно, работает. Программа скорее всего увесистая получилась и данный цикл ее добивает
    совместно с Modbus.lib.
    Всем спасибо.
    Вы серьезно думаете, что цикл в 8 проходов ложит процессор? :-) Ищите баги в коде. И они явно не в этом цикле, просто цикл по каким-то причинам не может выполнится из за кода перед ним.

  6. #6496

    По умолчанию

    Здравствуйте.
    Подскажите пожалуйста в чем проблема: в строке 176 выход функции BLINK не хочет "выходить" на релейный выход HORN.
    Спасибо.
    Вложение 38778

  7. #6497

    По умолчанию

    См. строку 188.

  8. #6498

    По умолчанию

    Спасибо.
    Мысль понятна. буду разбираться.

  9. #6499

    По умолчанию Прошу знатоков по ST посмотреть код на корректность

    Доброй ночи!
    в ST не силен, прошу посмотреть матерых, правильно ли будет так организовать запись в файл. Запись нужна лишь для хранения уставок.
    Т.к. форум не знает файлов типа .EXP, залил на файлообменник, прога доступна по ссылке
    Ну, или просто код:
    Код:
    PROGRAM PLC_PRG
    VAR
    
    	start1:BOOL;
    	start2:BOOL;
    	f1:DWORD;
    	Buffer_in: ARRAY[0..7] OF REAL;
    	Buffer_out: ARRAY[0..7] OF REAL;
    	timeout_1: TON := (PT := T#5s);
    	sfw:DWORD;
    	sfr:DWORD;
    	sfc:BOOL;
    END_VAR
    VAR_INPUT
    	per1_write:REAL;
    	per2_write:REAL;
    	per3_write:REAL;
    	per4_write:REAL;
    	per5_write:REAL;
    	per6_write:REAL;
    	per7_write:REAL;
    	per8_write:REAL;
    
    	write:BOOL;
    	read:BOOL;
    END_VAR
    
    VAR_OUTPUT
    	per1_read:REAL;
    	per2_read:REAL;
    	per3_read:REAL;
    	per4_read:REAL;
    	per5_read:REAL;
    	per6_read:REAL;
    	per7_read:REAL;
    	per8_read:REAL;
    	finish_write:BOOL; (*триггер успешной записи*)
    	finish_read:BOOL; (*триггер успешного чтения*)
    END_VAR
    
    
    
    
    Buffer_in[0] :=per1_write; (*формируем буфер из переменных для записи*) Buffer_in[1] :=per2_write; Buffer_in[2] :=per3_write; Buffer_in[3] :=per4_write; Buffer_in[4] :=per5_write; Buffer_in[5] :=per6_write; Buffer_in[6] :=per7_write; Buffer_in[7] :=per8_write; IF write=TRUE AND read=FALSE THEN (*команда на начало записи*) f1 := SysFileOpen ('my_retain', 'w'); IF f1>0 THEN; sfw:=SysFileWrite(f1, ADR(Buffer_in), SIZEOF(Buffer_in)); IF sfw=32 THEN; sfc:=SysFileClose(f1); finish_write:=TRUE; (*формирование флага успешной записи*) timeout_1(IN := TRUE); IF timeout_1.Q THEN finish_write:=FALSE; (*сброс флага через время PT*) timeout_1(IN := FALSE); write:=FALSE; END_IF END_IF END_IF END_IF IF read=TRUE AND write=FALSE THEN (*команда на начало чтения*) f1:=SysFileOpen('my_retain', 'r'); IF f1>0 THEN; sfr:=SysFileRead(f1, ADR(Buffer_out), SIZEOF(Buffer_out)); IF sfr=32 THEN; sfc:=SysFileClose(f1); SysMemCpy(ADR(per1_read), ADR(buffer_out[0]), SIZEOF(per1_read)); (*копируем из буфера чтения*) SysMemCpy(ADR(per2_read), ADR(buffer_out[1]), SIZEOF(per2_read)); SysMemCpy(ADR(per3_read), ADR(buffer_out[2]), SIZEOF(per3_read)); SysMemCpy(ADR(per4_read), ADR(buffer_out[3]), SIZEOF(per4_read)); SysMemCpy(ADR(per5_read), ADR(buffer_out[4]), SIZEOF(per5_read)); SysMemCpy(ADR(per6_read), ADR(buffer_out[5]), SIZEOF(per6_read)); SysMemCpy(ADR(per7_read), ADR(buffer_out[6]), SIZEOF(per7_read)); SysMemCpy(ADR(per8_read), ADR(buffer_out[7]), SIZEOF(per8_read)); finish_read:=TRUE; (*формирование флага успешного чтения*) timeout_1(IN := TRUE); IF timeout_1.Q THEN finish_read:=FALSE; (*сброс флага через время PT*) timeout_1(IN := FALSE); read:=FALSE; END_IF END_IF END_IF END_IF

  10. #6500

    По умолчанию

    Здравствуйте!
    В общем, проблема такого характера: все задействованные дискретные входы ПЛК-110 в CoDeSys'е при подключении к ПЛК дают true, хотя кнопка не нажата и датчик не срабатывает (кнопка и датчик - входные устройства). В самом ПЛК всё отображается корректно, нажал кнопку - загорелась лампочка над соответствующим входом. Что с этим можно сделать?

Страница 650 из 1041 ПерваяПервая ... 150550600640648649650651652660700750 ... ПоследняяПоследняя

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

Ваши права

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