三维PLC交互API文档

## PLC后端返回说明 - 使用flask-resful搭建后端web程序,Response结构如下: ```json { "lang": "zh_CN", "data": { "name": "ljh", "age": 18 }, "msg": "成功", "code": 0 } ``` 注: - code返回是-1表示fail,说明该操作出现异常 - 下面的返回只有data里的数据 - ip:127.0.0.1 - 端口:5000 ## Read接口 #### 1. 读取心跳位(PLC地址0.0) - 请求方法:GET - 接口:``/api/readHeartBeat`` - 参数:None - 返回: ```json { "heart_beat_value": "0" } ``` - 说明:心跳接口建议1秒钟请求一次,能获取PLC上1001之类的心跳 #### 2. 读取数据清除位(PLC地址0.1),该位用于清除中间文件夹数据,且清除各握手标志位 - 请求方法:GET - 接口:``/api/readClearFileDataRequest`` - 参数:None - 返回: ```json { "clear_file_data_req_value": "0" } ``` #### 3. 读取3D扫描完成位(PLC地址0.2) - 请求方法:GET - 接口:``/api/read3DTriggerDone`` - 参数:None - 返回: ```json { "trigger_done_value": "0" } ``` #### 4. 读取AI检测请求位(PLC地址0.3) - 请求方法:GET - 接口:``/api/readAICheckRequest`` - 参数:None - 返回: ```json { "AI_check_req_value": "0" } ``` #### 5.读取确认收到了AI检查结果位(PLC地址0.4) - 请求方法:GET - 接口:``/api/readAIDoneACK`` - 参数:None - 返回: ```json { "ai_done_ACK_value": "0" } ``` #### 6.读取激活相机正面程序位(PLC地址0.5) - 请求方法:GET - 接口:``/api/readActiveProgramUp`` - 参数:None - 返回: ```json { "ActiveProgramUp_value": "0" } ``` #### 7.读取激活相机侧面程序位(PLC地址0.6) - 请求方法:GET - 接口:``/api/readActiveProgramSide`` - 参数:None - 返回: ```json { "ActiveProgramSide_value": "0" } ``` #### 8.读取相机正面程序号(PLC地址4.0-4.7) - 请求方法:GET - 接口:``/api/readProgramNoTop`` - 参数:None - 返回: ```json { "ProgramNoTop_value": "1" } ``` #### 9.读取相机侧面程序号(PLC地址5.0-5.7) - 请求方法:GET - 接口:``/api/readProgramNoSide`` - 参数:None - 返回: ```json { "ProgramNoSide_value": "2" } ``` #### 10. 读取DMC码(PLC地址20.0-99.7) - 请求方法:GET - 接口:``/api/readDMC`` - 参数:None - 返回: ```json { "DMC_value": "123456789012345678901234567890666" } ## write接口 写接口的data返回无内容,看是否写成功主要看整个response的code是否是0,并且msg为"成功" #### 1. 写心跳 - 请求方法:POST - 接口:``/api/writeHeartBeat`` - 参数: | 参数 | 必选 | 类型 | 说明 | | ------------ | ---- | ---- | ------- | | heart_signal | True | int | 0 或者1 | - 返回:None - 说明:请求间隔建议1.6s #### 2.写DMC码 - 请求方法:POST - 接口:``/api/writeDMC`` - 参数: | 参数 | 必选 | 类型 | 说明 | | -------- | ---- | ------ | ----- | | DMC_data | True | String | DMC码 | - 返回:None #### 3. 文件清除完成(PLC地址100.1) ​ 根据需求写入PLC的DB块,clear_req为1或者0 - 请求方法:POST - 接口:`/api/writeClearReq` - 参数: | 参数 | 必选 | 类型 | 说明 | | --------- | ---- | ---- | -------------------------------------------------- | | clear_req | True | Int | 文件夹数据,且各握手标志位都复位完成,0或者1,下同 | - 返回:None #### 4. 确定3D文件已收到(PLC地址100.2) - 请求方法:POST - 接口:`/api/writeFileRec` - 参数: | 参数 | 必选 | 类型 | 说明 | | -------- | ---- | ---- | ------------------ | | file_rec | True | Int | 确认3D文件已经收到 | - 返回:None #### 5. AI分析完成(PLC地址100.3) - 请求方法:POST - 接口:`/api/writeAICheckDone` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---------- | ---- | ---- | ---------- | | check_done | True | Int | AI分析完成 | - 返回:None #### 6. AI正面结果OK(PLC地址100.4) - 请求方法:POST - 接口:`/api/writeAIUPOK` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---- | ---- | ---- | ------------ | | OK | True | Int | AI正面结果OK | - 返回:None #### 7. AI正面结果NOK(PLC地址100.5) - 请求方法:POST - 接口:`/api/writeAIUPNOK` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---- | ---- | ---- | ------------- | | NOK | True | Int | AI正面结果NOK | - 返回:None #### 8. 相机正面程序调整结束(PLC地址100.6) - 请求方法:POST - 接口:`/api/writeActiveProgramUpOK` - 参数: | 参数 | 必选 | 类型 | 说明 | | ------------ | ---- | ---- | -------------------- | | ac_pro_up_ok | True | Int | 相机正面程序调整结束 | - 返回:None #### 9. 相机侧面程序调整结束(PLC地址100.7) - 请求方法:POST - 接口:`/api/writeActiveProgramUSideOK` - 参数: | 参数 | 必选 | 类型 | 说明 | | -------------- | ---- | ---- | -------------------- | | ac_pro_side_ok | True | Int | 相机侧面程序调整结束 | - 返回:None #### 8.AI侧面结果OK(PLC地址102.0) - 请求方法:POST - 接口:`/api/writeAISideOK` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---- | ---- | ---- | ------------ | | OK | True | Int | AI侧面结果OK | - 返回:None #### 9. AI侧面结果NOK(PLC地址102.1) - 请求方法:POST - 接口:`/api/writeAISideNOK` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---- | ---- | ---- | ------------- | | NOK | True | Int | AI侧面结果NOK | - 返回:None #### 10. 正面Pin1的形态(PLC地址102.2) - 请求方法:POST - 接口:`/api/writePin1UpAppearance` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---------- | ---- | ---- | ----------------------------------------------------- | | appearance | True | Int | Pin1_Up_Appearance=1:不合格,Pin1_Up_Appearance=0合格 | - 返回:None #### 11. 正面Pin2的形态(PLC地址102.3) - 请求方法:POST - 接口:`/api/writePin2UpAppearance` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---------- | ---- | ---- | ----------------------------------------------------- | | appearance | True | Int | Pin2_Up_Appearance=1:不合格,Pin2_Up_Appearance=0合格 | - 返回:None #### 12. 正面Pin3的形态(PLC地址102.4) - 请求方法:POST - 接口:`/api/writePin3UpAppearance` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---------- | ---- | ---- | ----------------------------------------------------- | | appearance | True | Int | Pin3_Up_Appearance=1:不合格,Pin3_Up_Appearance=0合格 | - 返回:None #### 13. 特定区域1是否有锡珠(PLC地址102.5) - 请求方法:POST - 接口:`/api/writeSpecialPosition1` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---- | ---- | ---- | ---------------------- | | have | True | Int | hava=1:有,hava=0:无 | - 返回:None #### 14. 特定区域2是否有锡珠(PLC地址102.6) - 请求方法:POST - 接口:`/api/writeSpecialPosition2` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---- | ---- | ---- | ---------------------- | | have | True | Int | hava=1:有,hava=0:无 | - 返回:None #### 15. 特定区域3是否有锡珠(PLC地址102.7) - 请求方法:POST - 接口:`/api/writeSpecialPosition3` - 参数: | 参数 | 必选 | 类型 | 说明 | | ---- | ---- | ---- | ---------------------- | | have | True | Int | hava=1:有,hava=0:无 | - 返回:None #### 16. 写侧面Pin1的体积(PLC地址104.0-107.7) - 请求方法:POST - 接口:`/api/writePin1SideVolume` - 参数: | 参数 | 必选 | 类型 | 说明 | | ------ | ---- | ---- | ------- | | volume | True | flt | "12.21" | - 返回:None #### 17. 写侧面Pin2的体积(PLC地址108.0-111.7) - 请求方法:POST - 接口:`/api/writePin2SideVolume` - 参数: | 参数 | 必选 | 类型 | 说明 | | ------ | ---- | ---- | ------- | | volume | True | str | "12.21" | - 返回:None #### 18. 写侧面Pin3的体积(PLC地址112.0-115.7) - 请求方法:POST - 接口:`/api/writePin3SideVolume` - 参数: | 参数 | 必选 | 类型 | 说明 | | ------ | ---- | ---- | ------- | | volume | True | str | "12.21" | - 返回:None #### 19. 初始化:所有点位清空、所有检测结果 - 请求方法:GET - 接口:`/api/InitAll` - 参数:None - 返回:None ## 相机相关接口 #### 1. 相机切换程序 - 请求方法:POST - 接口:`/api/cameraChange` - 参数: | 参数 | 必选 | 类型 | 说明 | | ------------- | ---- | ---- | ------- | | programNo_set | True | int | 0 1 2 3 | - 返回: data字段里返回当前的活跃程序``activate_programNo_set``,``ori_programNo_set``是原来的活跃程序。通过判断给的切断程序号以及活跃程序号判断是否改变成功,``change_status``为1是成功,为0修改是失败,-1就是相机出现问题通讯失败 ```json { "ori_programNo_set": 0, "activate_programNo_set": 1, "change_status": 1 } ``` ```json { "ori_programNo_set": 1, "activate_programNo_set": 4, "change_status": 0 } ``` ```json { "ori_programNo_set": false, "activate_programNo_set": false, "change_status": -1 } ``` #### 2. 相机拿数据 - 请求方法:GET - 接口:`/api/cameraGetData` - 参数: | 参数 | 必选 | 类型 | 说明 | | --------- | ---- | ---- | ---------------------------------------------- | | dmc | True | str | 0 | | direction | True | int | 正面数据或者侧面数据<br />正面为1<br />侧面为0 | - 返回: 获取失败的msg汇总 | msg | | ------------------------------------------------------------ | | LJX8IF_InitializeHighSpeedDataCommunicationSimpleArray Error | | LJX8IF_PreStartHighSpeedDataCommunication Error | | LJX8IF_StartHighSpeedDataCommunication Error | | Failed to acquire image (timeout) | ```json { "msg": "LJX8IF_InitializeHighSpeedDataCommunicationSimpleArray Error", "get_status": -1 } ``` ```json { "msg": "get success", "get_status": 1 }