【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析

西門子S7-1200PLC控制步進電機的梯形圖程序


西門子S7-1200PLC控制步進電機的梯形圖程序,也可以用結構化編程的思路來編程。


首先,新建一個FB,編程語言選擇LAD(梯形圖)。


然后,在FB編程區編寫程序段1~19。


程序段1,M1.2為系統存儲器始終為1。手/自動開關為1時,自動模式開啟;手/自動開關為0時,手動模式開啟。


程序段2,M1.2為系統存儲器始終為1。啟動使能按鈕一個上升沿在步進電機未使能時,置位軸使能;啟動使能按鈕一個上升沿在步進電機已使能時,復位軸使能。


▼ 程序段1、2

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖1


程序段3,步進電機啟動使能,調用MC_Power指令程序。


程序段4,步進電機點動模式,調用MC_MoveJog指令程序。


▼ 程序段3、4

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖2


程序段5,在手動模式下,按復位按鈕,復位指令啟動。


程序段6,步進電機復位模式,調用MC_Reset指令程序。


程序段7,步進自動轉換為手動模式的一個脈沖時,觸發暫停模式。


▼程序段5、6、7

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖3


程序段8,步進電機暫停模式,調用MC_Halt指令程序。


程序段9,在自動模式下,按復位按鈕,回原點指令啟動。


▼程序段8、9

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖4


程序段10,步進電機回原點模式,調用MC_Home指令程序。


程序段11,在自動模式下,按自動啟動按鈕,開始執行定位運行。


▼ 程序段10、11

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖5


程序段12,步進電機原點OK情況下,確認原點的偏差范圍為-0.5~+0.5,則認為是原點位置。確認位置1、2的定位偏差范圍為-0.5~+0.5。


▼ 程序段12

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖6


程序段13,自動開始啟動按鈕按下,如在原點位置,則調用15.0的定位速度和位置1的定位位置;如在位置1處,則調用20.0的定位速度和位置2的定位位置;


▼ 程序段13

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖7


程序段14,定位1、2的觸發,統一為定位觸發。


程序段15,絕對定位模式,通過上幾步的設置為步進電機進行定位。


▼ 程序段14、15

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖8


程序段16,自動指示燈程序。


程序段17,手動指示燈程序。


程序段18,步進電機啟動使能程序


程序段19,步進電機使能異常報警程序。


▼程序段16、17、18、19

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖9


最后,我們要在主程序塊下調用FB程序,直接在項目樹中拖過來放開即可,這里要為FB的輸入、輸出分配好實參地址。


▼ 主程序塊調用FB

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖10

好了,西門子S7-1200PLC控制步進電機的部分梯形圖程序就介紹到這里,實際工程應用大家自行增減。




西門子S7-1200PLC控制步進電機的SCL語言編程


▼ 函數塊SCL語言程序

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖11


#軸使能啟動(Axis:="步進電機",

       Enable:=#軸使能_1,

       StartMode:=1,

       StopMode:=1);

#復位啟動(Axis:="步進電機",

      Execute:=#手動模式_1 AND #復位按鈕);

"回原點啟動"(Axis:="步進電機",

        Execute:=#自動模式_1 AND #復位按鈕,

        Position:=0,

        Mode:=3);

#點動模式啟動(Axis:="步進電機",

        JogForward:=#正向點動 AND #手動模式_1,

        JogBackward:=#負向點動 AND #手動模式_1);

#絕對定位啟動(Axis:="步進電機",

        Execute:=#絕對定位模式_1,

        Position:=#位置,

        Velocity:=#速度);


#上升沿檢測(CLK:=#手動模式_1);

#暫停模式啟動(Axis:="步進電機",

        Execute:=#上升沿檢測.Q);


//以上為指令塊調用


#上升沿檢測2(CLK:=#啟動使能按鈕);


IF #上升沿檢測2.Q AND NOT #軸使能啟動.Status THEN

    #軸使能_1 := 1 ;

   

END_IF;


IF #上升沿檢測2.Q AND  #軸使能啟動.Status THEN

    #軸使能_1 := 0 ;

   

END_IF;


#自動模式_1 := #"自/手動切換";


#手動模式_1 := NOT #"自/手動切換";


//以上為按鈕的狀態


#步進啟動2 := #自動模式_1 AND #自動啟動 AND "步進電機".StatusBits.HomingDone;


//以上絕對定位方式的自動啟動


IF #步進啟動2 THEN

    CASE #程序步 OF

        0:

            #程序步 := 10;

            ;

        10:

            #位置 := #位置1設置值;

            #速度 := #速度1設置值;

            #絕對定位模式_1 := 1;

            #延時處理 := 0;

            IF #絕對定位啟動.Done THEN

                #絕對定位模式_1 := 0;

            #程序步:= 15;

             END_IF;

        

        15:

             #IEC_Timer_0_Instance(IN:=#延時處理,

                               PT:=t#0s);

         #延時處理 := 1;

            IF #IEC_Timer_0_Instance.Q THEN

                #位置 := #位置2設置值;

                #速度 :=#速度2設置值;

                #絕對定位模式_1 := 1;

            END_IF;

            IF #絕對定位啟動.Done THEN

                #絕對定位模式_1 := 0;

                #延時處理 := 0;

            #程序步:= 20;

            END_IF;

            

        20:

            #IEC_Timer_0_Instance_1(IN:=#延時處理,

                                    PT:=t#10s);

            

            #延時處理 := 1;

            IF #IEC_Timer_0_Instance_1.Q THEN

                #位置 := #位置3設置值;

                #速度 := #速度3設置值;

                #絕對定位模式_1 := 1;

            END_IF;

            IF #絕對定位啟動.Done THEN

                #絕對定位模式_1 := 0;

                #延時處理 := 0;

                #程序步 := 10;

            END_IF;

        

    END_CASE;

ELSE

    #位置 := 0;

    #速度 := 0;

    #自動模式_1 := 0;

    #程序步 := 0;

END_IF;

//以上為三個位置的定位,預留延時功能


#自動指示燈_1 := #自動模式_1;

#手動指示燈_1 := #手動模式_1;

#報警指示燈_1 := #軸使能啟動.Error;

#軸使能指示燈 := #軸使能啟動.Status;

#原點指示燈_1 := "步進電機".StatusBits.HomingDone;

//以上為輸出指示燈


▼ Main程序塊調用函數塊

【干貨】西門子S7-1200博途用LAD和SCL語言控制步進電機程序分析的圖12


登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1