Последний раз редактировалось Вольд; 02.03.2017 в 12:18.
То V.Sitnikov
Владимир, поясните чем отличаются ФБ PWM_DW и PDM_DW ?
В документации: https://hardella.com/docs/pru/standard-library/#pwm_dw
И на форуме: http://www.owen.ru/forum/showthread....l=1#post229447
Так понятнее?
Владимир, проект компилируется без ошибок, но краснота замучила.
Если при постановке курсора в res_c и нажатии ctrl+пробел варианта "res_c" не возникает, то, наверное, pwm: PWM_DW у вас ссылается на библиотечный блок, а не на самодельный.
Переименуйте свой блок и используйте его в программе -- всё встанет на свои места (возможно, res_c и counter придётся перевыбрать в @Export части).
Спасибо. Все верно. Я ФБ в проект скопировал, а переименовать забыл.
Владимир, переделал ваш ФБ. Ввел счетчик импульсов и сброс этого счетчика. Правильно ли я все сделал ? Все что я добавил поместилось в картинке.
Последний раз редактировалось Вольд; 02.03.2017 в 17:21.
Зависит от того, как этот блок потом использовать.
Скорее всего:
counter увеличивать нужно не каждый раз, а только по фронту.
Вместо переменной res_p можно было IF R_TRIG(CLK := res_c).Q THEN counter := 0; END_IF; Но это, наверное, дело вкуса.
Не факт, что PDM это то, что нужно в конкретной задаче.
Скорее, нужно было PWM с 50% скважностью или что-нибудь среднее между PDM/PWM.
Последний раз редактировалось Владимир Ситников; 02.03.2017 в 17:53.