1、聯網界面
2、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;