Можно ли изменять время включения вывода цифрового выхода ПЛК через структурированный текст?
Я пытаюсь смоделировать выходной сигнал ШИМ от только цифрового ПЛК. Так можно ли определить время включения и выключения вывода цифрового выхода в каждом цикле?
Заранее спасибо.
1 ответ
Большинство ПЛК с транзисторными выходами имеют генератор импульсов, который вы можете использовать. Например, в ПЛК Schneider вы можете использовать PTO (выход серии импульсов). Например, если вы использовали сигнал для перемещения двигателя, вы можете определить, какая скорость эквивалентна частоте импульсов, а затем в коде вы можете определить скорость для движения.
VAR
MC_MoveVelocity_PTO_0: MC_MoveVelocity_PTO;
Powerd: MC_Power_PTO;
mcPositive: MC_DIRECTION;
END_VAR
//enable pulse train output
Powerd(Axis:=PTO_0,Enable:=TRUE,DriveReady:=TRUE);
//command
MC_MoveVelocity_PTO_0(Axis:=PTO_0,Execute:=%IX1.1,ContinuousUpdate:=TRUE,Velocity:=100,Acceleration:=1000,Deceleration:=1000,Direction:=mcPositive);
Этот код должен выполняться каждый цикл, поэтому вам не нужно обновлять время включения и выключения каждого цикла. Вы можете настроить скорость, с которой он работает на каждом цикле, если вы действительно этого хотите.
Или, если вы хотите получить базовые знания, вы можете использовать таймер для включения и выключения вашего выхода.
VAR
PWM_Timer: BLINK;
DigitalOutput: BOOL;
offTime: TIME := t#10ms;
onTime: TIME:=t#10ms;
END_VAR
PWM_Timer(ENABLE:=TRUE , TIMELOW:=offTime , TIMEHIGH:=onTime , OUT=>DigitalOutput );
где таймер, который я использовал, указывает время включения и выключения, которое вы можете настроить. Но вам не нужно включать и выключать выход каждый цикл. PLC позаботится об этом за вас.
Если вы хотите поиграть с включением / выключением выхода каждый цикл, чтобы посмотреть, что он будет делать, вы можете сделать что-то вроде
IF DigitalOutput THEN
DigitalOutput:=FALSE;
ELSE
DigitalOutput:=TRUE;
END_IF;
Итак, когда plc
Проходит сканирование, он увидит, что выход выключен, и включит его. В следующем цикле он увидит, что он включен, и выключит его.
Надеюсь это поможет.