天天看點

自動化立體倉庫AGV小車控制系統

1、聯網界面

自動化立體倉庫AGV小車控制系統

 2、AGV小車對應變量

自動化立體倉庫AGV小車控制系統

3、手動RGV運作代碼

IF NOT "DB1".模式切換.手動清位 THEN
    RETURN;
END_IF;

"FC13 水準手動"(前限開關 := "前限開關",
             前換開關 := "前換開關",
             後換開關 := (("DB2 通訊互動".RGV.接收内容.車展現位值 - "DB2 通訊互動".RGV.發送内容.車展現位值) > "DB2 通訊互動".RGV.兩車安全距離),
             後限開關 := 1,//"後限開關",
             防撞開關 := "防撞開關",
             IN1 := 400,
             IN2 := 2500,
             IN3 := 5000,
             IN4 := 7500,
             IN5 := 9500,
             速度輸入 := "DB1".手動操作.速度輸入,
             運作資料 := "DB1".手動操作.運作手動,
             OFF2停車 := "運作OFF2停車",
             OFF3停車 := "運作OFF3停車",
             輸出控制 := "輸出控制",
             輸出頻率 := "輸出頻率");

//鍊條正反轉 觸摸屏控制,點動\保持\速度 傳輸控制
"DB1".手動操作.鍊條手動.手動點動 := "DB2 通訊互動".Receive.鍊條點動;
"DB1".手動操作.鍊條手動.手動保持 := "DB2 通訊互動".Receive.鍊條保持;
"DB1".手動操作.鍊條手動.速度調整 := "DB2 通訊互動".Receive.鍊條速度;

"FC11 雙速運作"(運作資料 := "DB1".手動操作.鍊條手動,
            輸出正轉 := "1904鍊條前",
            輸出反轉 := "1904鍊條後",
            輸出速度 := "1904高速");




           

 測速功能塊

//減速距離
"DB120 測速資料塊".減速距離 := ABS(DWORD_TO_DINT(IN := "BPS348i":P) - "DB120 測速資料塊".目地位置);

//目前頻率
"DB120 測速資料塊".目前頻率 := "傳回轉速":P;
//急停保護

IF NOT "前限開關" OR "BPS348i":P < "DB120 測速資料塊".急停最小
    OR
    "BPS348i":P > "DB120 測速資料塊".急停最大 //OR NOT "後限開關" 
    OR
    "BPS348i":P < "DB120 測速資料塊".目地位置
THEN
    "輸出控制":P := W#16#047E;
    "輸出頻率":P := 0;
    "運作OFF2停車" := 0;
    "運作OFF3停車" := 0;
    "DB120 測速資料塊".啟動辨別 := 0;
    RETURN;
ELSE
    "運作OFF2停車" := 1;
    "運作OFF3停車" := 1;
END_IF;

IF NOT "DB120 測速資料塊".啟動辨別
    OR
    "BPS348i":P < "DB120 測速資料塊".急停最小
    //OR
    //"BPS348i":P > "DB120 測速資料塊".急停最大
THEN
    "輸出控制":P := W#16#047E;
    "輸出頻率":P := 0;
    "運作OFF2停車" := 0;
    "運作OFF3停車" := 0;
    RETURN;
END_IF;
//"運作OFF3停車" := 1;

//距離測試
IF "DB120 測速資料塊".正轉辨別 THEN
    IF "BPS348i":P > "DB120 測速資料塊".目地位置 THEN
        "輸出控制":P := W#16#047F;//正轉
        "輸出頻率":P := DINT_TO_WORD(IN := "DB120 測速資料塊".測試頻率);
    ELSE
        "輸出控制":P := W#16#047E;
        "輸出頻率":P := 0;
        "DB120 測速資料塊".正轉辨別 := 0;
    END_IF;
    
ELSIF "DB120 測速資料塊".反轉辨別 THEN
    IF "BPS348i":P < "DB120 測速資料塊".目地位置 THEN
        "輸出控制":P := W#16#0C7F;
        "輸出頻率":P := DINT_TO_WORD(IN:="DB120 測速資料塊".測試頻率);
    ELSE
        "輸出控制":P  := W#16#047E;
        "輸出頻率":P := 0;
        "DB120 測速資料塊".反轉辨別 := 0;
    END_IF;
ELSE
    "輸出控制":P  := W#16#047E;
    "輸出頻率":P := 0;
END_IF;