# AOI PLC 流程 1. 確認客戶需求及傳遞流程 2. 定義交握訊號 3. 進行訊號傳遞 ## Example yonghao * **傳遞流程** PLC與PC之間進行訊息傳遞,將開啟相機、開始拍照、拍照完成的三個進度,使用modbus進行訊息傳遞。 PLC為廠商機械端的位置,PC為訊息端的位置。 * **交握訊號** PLC=99;PC=98 yonghao的例子中使用99及98當作訊息傳遞的儲存位置 * **訊號傳遞** 相機準備失敗,98=0 相機準備完成,98=1 欲進行相機1拍照,99=1 相機1拍照,98=2 相機1拍照完成,98=3 99=1為相機1;99=2為相機2 ## 程式碼撰寫流程 1. 確認檢驗模式(自行設定) ``` mode = check_mode() ``` 2. modbus連結 ``` modbus_client = connect_modbus() ``` 3. 初始化客戶端資訊以進行連結 ``` mqtt_client = mqtt.Client() mqtt_broker_ip = "127.0.0.1" mqtt_client.connect(mqtt_broker_ip, 1883, 60) ``` * 進入無限迴圈(while True) 1. 持續發布狀態至伺服器 ``` publish_status() ``` 2. 重置全域狀態與照片狀態 ``` reset_global_state() reset_photo_state() ``` 3. 開啟相機 ``` camera_check() ``` 4. 開始拍照 ``` take_photo ``` 5. 將相片儲存 ``` save_path = f"photo/{round_time}/{sample}/{count}" ``` ### 注意事項 1. 確認相機類別,使用對應驅動程式 2. modbus連結為相互交握訊號之裝置 ``` connect_modbus() ``` 3. 在進行推論的時候,需要一個字典將訊號不斷寫入Modbus寄存器中,避免訊號未傳入 ``` modbus_write() ``` 4. 在一開始需要設定相關數值的初始值 ``` state = {} photo_base64 = {} reset_global_state() reset_photo_state() publish_status() ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up