控制锁定和解锁


控制锁定功能是一种物理保护功能。此功能是在数字输入端口连接限制开关,当开关关闭时, 不能进行追加控制的功能。因此可限制步进电机的工作范围。

控制锁定状态

点击动作依据限制开关停止时,点击状态为控制锁定状态至解锁前无法进行追加的控制。

设置控制锁

请参考设定中的 "数字输入端口设定"来设定control lock

解锁

解除控制解锁状态的函数是 unlock()

step.unlock()

实行unlock函数,电机的状态从控制锁定状态转换为锁定状态,数字输入端口的输入模式在控制锁定模式初始化为一般输入模式。 因此在unlock()以后可正常进行电机控制。

示例

#include <PhpocExpansion.h>
#include <Phpoc.h>

byte spcId = 1;

ExpansionStepper step(spcId);

int state;

void setup() {
    Serial.begin(9600);
    while(!Serial)
        ;

    Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
    Expansion.begin();

    Serial.println(step.getPID());
    Serial.println(step.getName());

    step.setMode(4);
    step.setVrefStop(2);
    step.setVrefDrive(8);
    step.setVrefLock(8);
    step.setSpeed(400);
    step.setAccel(4000);

    step.setEioMode(0, 1);
    step.setEioMode(1, 1);
    step.setEioMode(2, 1);
    step.setEioMode(3, 1);

    step.stepGoto(4000);

    while(step.getState() > 1) {
        delay(1);
    }

    // state: 0 - stop, 1 - locked
    Serial.print("step_state ");
    Serial.println(step.getState());

    step.unlock();

    // state: 0 - stop, 1 - locked
    Serial.print("step_state ");
    Serial.println(step.getState());
}

void loop() {

}
step_state 1
step_state 0