выкладываю свой вариант кода для управления одним ШГ. У меня подключены 4 ШГ у контроллеру - работают нормально. по 2шт одновременно.

(* 1-й верхний*)
IF (state1=STOP_STEPPER OR state1=INIT_STEPPER) AND rungen1=FALSE THEN SetPos_1presHig1:=SetPos_1presHig; oldpos2:=Pos_1presHig; END_IF
IF SetPos_1presHig1<>Pos_1presHig AND rungen1=FALSE THEN
Way1PresHig:=SetPos_1presHig1>Pos_1presHig;
IF SetPos_1presHig>Pos_1presHig AND (state1=INIT_STEPPER OR state1=STOP_STEPPER) THEN
difpos1:=SetPos_1presHig1-Pos_1presHig;
ELSIF SetPos_1presHig1<Pos_1presHig AND (state1=INIT_STEPPER OR state1=STOP_STEPPER) THEN
difpos1:=Pos_1presHig-SetPos_1presHig;
END_IF
Way1PresHigOut:=NOT Way1PresHig;
IF state1=run_stepper OR state1=ACCEL_STEPPER OR state1=DECEL_STEPPER THEN Pos_1presHig:=oldpos2+pos1*BOOL_TO_WORD(Way1Preshi g)-pos1*(BOOL_TO_WORD(NOT Way1PresHig)); END_IF
IF state1=init_STEPPER THEN
rungen2:=TRUE;
END_IF
out1:=4;
ELSE
Way1PresHigout:=FALSE;
END_IF
IF state1=stop_stepper THEN rungen1:=FALSE; rungen2:=FALSE; END_IF
Gen1Hig( ENABLE:=rungen1 OR rungen2 , MIN_SPEED:=0 , MAX_SPEED:=Speed1PresHig , QUANTITY:= difpos1 , ACCEL_RAMP:=2000 , DECEL_RAMP:=2000, OUT_NUM:=out1 , STATE=>state1 , CURRENT_SPEED=> , PULSES_GENERATED=>pos1 );