Учусь программировать в CoDeSys V2.3. Создал простенькую программу. В режиме эмуляции работает. При подключении ПЛК73 связь устанавливается, появляется окно загрузки программы в контроллер.
Все нормально, состояние выходов и входов контроллера меняется и это видно в окне CoDeSys. Затем связь разрываю, отключаю ПЛК от компьютера. Пробую запустить программу в контроллере - никакой реакции.
Снова подключаю ПЛК к PC. Если в CoDeSys пытаюсь открыть файл из ПЛК, то получаю ответ: "последний онлайн-сервис был завершен некорректно! Номер сервиса:49, номер ошибки:80 Файл 'source.dat' не читается. Исходный файл не может быть считан." А в режиме онлайн CoDeSys опять все в порядке. Что я делаю не так, подскажите.
В 73-ем нет файловой системы..ПЛК73..Если в CoDeSys пытаюсь открыть файл из ПЛК
А в чем может быть причина невыполнения программы в самом контроллере без CoDeSys?
Ошиблись в 7й строке программы
Спасибо, конечно за подсказку, но зачем на школе акцент делать? Да, не все помнится из школьного курса, нет в этом ничего сверхъестественного. Обычный человеческий фактор, когда человек не пользуясь, в течении длительного времени, теми или иными приобретенными знаниями, постепенно их утрачивает.
Я написал программу для ПЛК110.32-М и время цикла 10ms статистик показывает Вложение 20372 я так понимаю что это 1,6ms проходит на обработку моей программы но почему когда на 4 счётчика приходит один и тот же сигнал (импульсы) но на 1,2,3 и 4 вход ПЛК при частоте около 40 герц они работают нормально но если только свеше 60 герц они считают по разному Вложение 20373 мне нужно чтоб они (счётчики) работали нормально и стабильно считали около 100 герц.
Подскажите как мне это сделать?
Чтобы входы ПЛК могли фиксировать импульсы, время цикла должно быть не более периода следования импульсов деленного на два, т.е. для частоты импульсов 100 Гц, цикл не более 5 мс при условии, что сигнал на входах ПЛК имеет форму меандра, т.е. скважность импульсов равна 2 и фильтрация для дискретных входов отключена в конфигурации (Time of filtration = -1).
ЗЫ. Вы это подтвердили экспериментально.
При времени цикла 10 мс, частота на входе ПЛК должна быть не более 50 Гц....время цикла 10ms... когда на 4 счётчика приходит один и тот же сигнал (импульсы) но на 1,2,3 и 4 вход ПЛК при частоте около 40 герц они работают нормально...
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Здравствуйте. Программирую на языке CFC. Столкнулся с проблемой сохранения вводимых с панели переменных. В примерах подходящий пример нашёл. Но написан на другом языке. Помогите перевести кусочек программа на язык CFC:
rtrig_pwr(CLK:=pwr_stat); (*Триггер отслеживающий передний фронт по появлению питания, переменная pwr_stat -флаг питания модуля Statistic*)
IF rtrig_pwr.Q THEN (*По появлению питания, передаём ,в переменную для записи в панель, значение сохраненное во временной retain-переменной до отключения питания*)
write:=Read_retain;
ELSE (*Если питание в данном цикле не менялось, то записываем текущее значение с панели в retain-переменную*)
read_retain:=read;
END_IF
TOF_wr(IN:=rtrig_pwr.Q , PT:=T#3s); (*Из-за задержки между появлением питания и старта программы ПЛК вводим задержку, т.е в течении заданного времени ПЛК после появления питания будет записывать данную переменную в панель*)
IF TOF_wr.Q THEN
comWrite:=255; (*Запись переменную write в панель*)
ELSE
comWrite:=254; (* Отмена записи*)
END_IF
С общим принципом разобрался. Дошел до команды THEN. А дальше тупик. Что за команда в CFC? Вызываемый блок не имеет входов, есть один только выход. Как на него цеплять условия? или я чего-то не понимаю.
Спасибо за ответ.