public static void GetImage() { Camera.GrabImageVoid(); viewController1.addIconicVar(GlobalVars.Camera.CurrentImage); viewController1.repaint(); }
private async void run() { bool m3000 = false, m3001 = false, m3002 = false, m3003 = false, m3004 = false, m3005 = false, m3006 = false; while (true) { try { #region 读取坐标 await Task.Run(() => { GPos2 = (double)plc.ReadW("D100") / 1000; GPos3 = (double)plc.ReadW("D102") / 200; GPos4 = (double)plc.ReadW("D104") / 200; GPos9 = (double)plc.ReadW("D106") / 10000 * 360; }); #endregion #region 读信息 bool[] M3000 = await Task.Run <bool[]>(() => { return(plc.ReadMultiM("M3000", 16)); }); if (M3000 != null) { if (m3000 != M3000[0]) { if (M3000[0]) { PLCModeSate = "S0初始化流程"; } m3000 = M3000[0]; } if (m3001 != M3000[1]) { if (M3000[1]) { PLCModeSate = "S10模式选择流程"; } m3001 = M3000[1]; } if (m3002 != M3000[2]) { if (M3000[2]) { PLCModeSate = "S11运行流程"; } m3002 = M3000[2]; } if (m3003 != M3000[3]) { if (M3000[3]) { PLCModeSate = "S50调试流程"; } m3003 = M3000[3]; } if (m3004 != M3000[4]) { if (M3000[4]) { PLCModeSate = "S99急停流程"; } m3004 = M3000[4]; } if (m3005 != M3000[5]) { if (M3000[5]) { addMessage("暂停"); } m3005 = M3000[5]; } if (m3006 != M3000[6]) { if (M3000[6]) { addMessage("等待按“复位”按钮"); } m3006 = M3000[6]; } } #endregion #region 运行 bool m401 = await Task.Run <bool>(() => { return(plc.ReadM("M401")); }); if (m401) { addMessage("触发拍照"); await Task.Run(() => { plc.SetM("M401", false); plc.SetM("M402", true); cam1.SetRotaryEncoderDirection(true); cam1.GrabImageVoid(0, false, false); }); CameraIamge = cam1.CurrentImage; addMessage("拍照完成"); } bool m431 = await Task.Run <bool>(() => { return(plc.ReadM("M431")); }); if (m431) { addMessage("触发拍照2"); await Task.Run(() => { plc.SetM("M431", false); plc.SetM("M432", true); cam1.SetRotaryEncoderDirection(false); cam1.GrabImageVoid(0, false, false); }); CameraIamge2 = cam1.CurrentImage; addMessage("拍照完成2"); } #endregion } catch { } #region 更新状态 StatusCamera = cam1.Connected; #endregion await Task.Delay(100); } }