Ответы пользователя по тегу Программируемый логический контроллер
  • Лишних условий не бывает?

    @xandox
    Из первого варианта проста сразу видно при каких условиях мы включаем мотор, в при каких выклюаем. Единственное, что я бы проверку клпонов в отдельную переменную вынес бы, что бы копипстой не заниматься.
    bool IsValvesOpen = Valve1.IsOpen && Valve2.IsOpen && Valve3.IsOpen;
    if (IsValvesOpen && Sensor.Value > 10.0) {
         Motor.Cmd = true;
    } 
     
    if (!IsVelvesOpen || Sensor.Value < 5.0) {
         Motor.Cmd = false;
    }


    Можно еще и по хардкорному без if-ов (но за такое могут и от материть (и если состояния сохраняются))
    Motor.Cmd = (Valve1.IsOpen && Valve2.IsOpen && Valve3.IsOpen) && (Sensor.Value > 10 || (Motor.Cmd && Sensor.Value >= 5))
    Ответ написан
    2 комментария