using Prism.Mvvm; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TeamAAS_VP.Models.PLC; namespace TeamAAS_VP.Models.PLC { public class PlcAddressConfig : BindableBase { #region 写入到PLC的地址 private int _PlcNo; public int PlcNo { get { return _PlcNo; } set { SetProperty(ref _PlcNo, value); } } private PlcAddress _Out_ProductLoadMode; /// /// 产品切换类型 /// public PlcAddress Out_ProductLoadMode { get { return _Out_ProductLoadMode; } set { SetProperty(ref _Out_ProductLoadMode, value); } } private PlcAddress _Out_WorkMode = new PlcAddress(); /// /// 工作模式 =1 拍1打1 =2 拍1打所有 /// public PlcAddress Out_WorkMode { get { return _Out_WorkMode; } set { SetProperty(ref _Out_WorkMode, value); } } private PlcAddress _QrCodePhotoResault = new PlcAddress(); /// /// pc发送二维码拍照点位成功后 =1 失败=2 未执行=0 /// public PlcAddress Out_QrCodePhotoResault { get { return _QrCodePhotoResault; } set { SetProperty(ref _QrCodePhotoResault, value); } } private PlcPointAddress _QrCodeCamera = new PlcPointAddress(); /// /// 二维码拍照点位参数 /// public PlcPointAddress Out_QrCodeCamera { get { return _QrCodeCamera; } set { SetProperty(ref _QrCodeCamera, value); } } private PlcAddress _PickPointNum = new PlcAddress(); /// /// 取料位置 =0 不需要取料 =1 需要取料 /// public PlcAddress Out_PickPointNum { get { return _PickPointNum; } set { SetProperty(ref _PickPointNum, value); } } private PlcAddress _DowmCameraNum = new PlcAddress(); /// /// 下相机拍照次数=0 无 /// public PlcAddress Out_DowmCameraNum { get => _DowmCameraNum; set => SetProperty(ref _DowmCameraNum, value); } private PlcAddress _UpCameraPickNum = new PlcAddress(); /// /// 上相机取料拍照次数=0 无 /// public PlcAddress Out_UpCameraPickNum { get => _UpCameraPickNum; set => SetProperty(ref _UpCameraPickNum, value); } private PlcAddress _UpCameraPutNum = new PlcAddress(); /// /// 上相机放料拍照次数=0 无 /// public PlcAddress Out_UpCameraPutNum { get => _UpCameraPutNum; set => SetProperty(ref _UpCameraPutNum, value); } private PlcAddress _UPCameracheckNum = new PlcAddress(); /// /// 上相机锁附/组装次数=0 无 /// public PlcAddress Out_UPCameracheckNum { get => _UPCameracheckNum; set => SetProperty(ref _UPCameracheckNum, value); } private PlcAddress _FixedCameraPickNum = new PlcAddress(); /// /// 取料固定位置拍产品相机数量 =0 无 /// public PlcAddress Out_FixedCameraPickNum { get => _FixedCameraPickNum; set => SetProperty(ref _FixedCameraPickNum, value); } private PlcAddress _FixedCameraPutNum = new PlcAddress(); /// /// 锁附/组装固定位置拍产品相机数量 =0 无 /// public PlcAddress Out_FixedCameraPutNum { get => _FixedCameraPutNum; set => SetProperty(ref _FixedCameraPutNum, value); } private PlcAddress _FixedCameracheckNum = new PlcAddress(); /// /// 固定相机检测锁附/组装次数=0 无 /// public PlcAddress Out_FixedCameracheckNum { get => _FixedCameracheckNum; set => SetProperty(ref _FixedCameracheckNum, value); } private PlcAddress _WorkNum = new PlcAddress(); /// /// 锁附/组装数量 /// public PlcAddress Out_WorkNum { get { return _WorkNum; } set { SetProperty(ref _WorkNum, value); } } private PlcAddress _DownCameraStatus = new PlcAddress(); /// /// 下相机拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK /// public PlcAddress Out_DownCameraStatus { get { return _DownCameraStatus; } set { SetProperty(ref _DownCameraStatus, value); } } private PlcAddress _UpCameraPickStatus = new PlcAddress(); /// /// 上相机取料拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK /// public PlcAddress Out_UpCameraPickStatus { get { return _UpCameraPickStatus; } set { SetProperty(ref _UpCameraPickStatus, value); } } private PlcAddress _UpCameraPutStatus = new PlcAddress(); /// /// 上相机锁附/组装拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK /// public PlcAddress Out_UpCameraPutStatus { get { return _UpCameraPutStatus; } set { SetProperty(ref _UpCameraPutStatus, value); } } private PlcAddress _UPCameracheckStatus = new PlcAddress(); /// /// 上相机检测拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK /// public PlcAddress Out_UPCameracheckStatus { get { return _UPCameracheckStatus; } set { SetProperty(ref _UPCameracheckStatus, value); } } private PlcAddress _FixedCameraPickStatus = new PlcAddress(); /// /// 固定相机取料拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK /// public PlcAddress Out_FixedCameraPickStatus { get { return _FixedCameraPickStatus; } set { SetProperty(ref _FixedCameraPickStatus, value); } } private PlcAddress _FixedCameraPutStatus = new PlcAddress(); /// /// 固定相机锁附/组装拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK /// public PlcAddress Out_FixedCameraPutStatus { get { return _FixedCameraPutStatus; } set { SetProperty(ref _FixedCameraPutStatus, value); } } private PlcAddress _FixedCameracheckStatus = new PlcAddress(); /// /// 固定相机检测拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK /// public PlcAddress Out_FixedCameracheckStatus { get { return _FixedCameracheckStatus; } set { SetProperty(ref _FixedCameracheckStatus, value); } } private PlcAddress _Out_CameraDone = new PlcAddress(); /// /// 相机坐标拟合完成 /// public PlcAddress Out_CameraDone { get { return _Out_CameraDone; } set { SetProperty(ref _Out_CameraDone, value); } } private PlcAddress _MesStatus = new PlcAddress(); /// /// 过站信息 =1 允许工作 =2 本站放行 =3 数据上传完成 /// public PlcAddress Out_MesStatus { get { return _MesStatus; } set { SetProperty(ref _MesStatus, value); } } private PlcPointAddress _PickCamera = new PlcPointAddress(); /// /// 取料拍照点位参数 /// public PlcPointAddress Out_PickCamera { get { return _PickCamera; } set { SetProperty(ref _PickCamera, value); } } private PlcPointAddress _Pick = new PlcPointAddress(); /// /// 取料点位参数 /// public PlcPointAddress Out_Pick { get { return _Pick; } set { SetProperty(ref _Pick, value); } } private PlcPointAddress _SecPosCamera = new PlcPointAddress(); /// /// 下相机二次定位点位参数 /// public PlcPointAddress Out_SecPosCamera { get { return _SecPosCamera; } set { SetProperty(ref _SecPosCamera, value); } } private PlcPointAddress _ScrewCamera = new PlcPointAddress(); /// /// 锁附拍照点位参数 /// public PlcPointAddress Out_ScrewCamera { get { return _ScrewCamera; } set { SetProperty(ref _ScrewCamera, value); } } private PlcPointAddress _Screw = new PlcPointAddress(); /// /// 锁附点位参数 /// public PlcPointAddress Out_Screw { get { return _Screw; } set { SetProperty(ref _Screw, value); } } private PlcPointAddress _CheckCamera = new PlcPointAddress(); /// /// 复检点位参数 /// public PlcPointAddress Out_CheckCamera { get { return _CheckCamera; } set { SetProperty(ref _CheckCamera, value); } } private PlcPointAddress _IndependentCamer = new PlcPointAddress(); /// /// 独立移动相机点位参数 /// public PlcPointAddress Out_IndependentCamer { get { return _IndependentCamer; } set { SetProperty(ref _IndependentCamer, value); } } private PlcPointAddress _Out_RemovePos = new PlcPointAddress(); /// /// 撕膜点位参数 /// public PlcPointAddress Out_RemovePos { get { return _Out_RemovePos; } set { SetProperty(ref _Out_RemovePos, value); } } private PlcPointAddress _Out_PressurePlace = new PlcPointAddress(); /// /// 压力组装点位参数 /// public PlcPointAddress Out_PressurePlace { get { return _Out_PressurePlace; } set { SetProperty(ref _Out_PressurePlace, value); } } private PlcAddress _Out_ScrewTeachNum; /// /// 披头矫正的模式,1:初始化时矫正,2:每个产品矫正一次,3:每颗螺丝矫正一次 /// public PlcAddress Out_ScrewTeachNum { get { return _Out_ScrewTeachNum; } set { SetProperty(ref _Out_ScrewTeachNum, value); } } private PlcAddress _Out_ScrewTeachOk; /// /// 下相机矫正披头的结果,1:OK,2:NG /// public PlcAddress Out_ScrewTeachOk { get { return _Out_ScrewTeachOk; } set { SetProperty(ref _Out_ScrewTeachOk, value); } } private PlcAddress _Out_ScrewFeederIsChanged; /// /// 螺丝供料器发生改变 /// public PlcAddress Out_ScrewFeederIsChanged { get { return _Out_ScrewFeederIsChanged; } set { SetProperty(ref _Out_ScrewFeederIsChanged, value); } } private PlcAddress _Out_PartCode; /// /// 零件的扫码编号写入到PLC /// public PlcAddress Out_PartCode { get { return _Out_PartCode; } set { SetProperty(ref _Out_PartCode, value); } } #endregion #region 从PLC读取的地址 private PlcAddress _In_QrCodePhotoRequest = new PlcAddress(); /// /// 二维码拍照请求 /// public PlcAddress In_QrCodePhotoRequest { get { return _In_QrCodePhotoRequest; } set { SetProperty(ref _In_QrCodePhotoRequest, value); } } private PlcAddress _In_QrCodeCamera_ScanNum = new PlcAddress(); /// /// 二维码拍照请求 /// public PlcAddress In_QrCodeCamera_ScanNum { get { return _In_QrCodeCamera_ScanNum; } set { SetProperty(ref _In_QrCodeCamera_ScanNum, value); } } private PlcAddress _In_Code = new PlcAddress(); /// /// 产品编码 /// public PlcAddress In_Code { get { return _In_Code; } set { SetProperty(ref _In_Code, value); } } private PlcAddress _In_MesCheck = new PlcAddress(); /// /// Mes交互 =1 获取过站信息当站是否生产,=2 上传本站数据 /// public PlcAddress In_MesCheck { get { return _In_MesCheck; } set { SetProperty(ref _In_MesCheck, value); } } private PlcAddress _In_Result = new PlcAddress(); /// /// 产品的最终结果 /// public PlcAddress In_Result { get { return _In_Result; } set { SetProperty(ref _In_Result, value); } } private PlcAddress _In_DowmCameraNum = new PlcAddress(); /// /// 下相机拍照编号 /// public PlcAddress In_DowmCameraNum { get { return _In_DowmCameraNum; } set { SetProperty(ref _In_DowmCameraNum, value); } } private PlcAddress _In_DowmCameraExe = new PlcAddress(); /// /// 下相机拍照触发 /// public PlcAddress In_DowmCameraExe { get { return _In_DowmCameraExe; } set { SetProperty(ref _In_DowmCameraExe, value); } } private PlcAddress _In_UpCameraPickNum = new PlcAddress(); /// /// 上相机取料拍照编号 /// public PlcAddress In_UpCameraPickNum { get { return _In_UpCameraPickNum; } set { SetProperty(ref _In_UpCameraPickNum, value); } } private PlcAddress _In_UpCameraPickExe = new PlcAddress(); /// /// 上相机取料拍照触发 /// public PlcAddress In_UpCameraPickExe { get { return _In_UpCameraPickExe; } set { SetProperty(ref _In_UpCameraPickExe, value); } } private PlcAddress _In_UpCameraPutNum = new PlcAddress(); /// /// 上相机锁附/组装拍照编号 /// public PlcAddress In_UpCameraPutNum { get { return _In_UpCameraPutNum; } set { SetProperty(ref _In_UpCameraPutNum, value); } } private PlcAddress _In_UpCameraPutExe = new PlcAddress(); /// /// 上相机锁附/组装拍照触发 /// public PlcAddress In_UpCameraPutExe { get { return _In_UpCameraPutExe; } set { SetProperty(ref _In_UpCameraPutExe, value); } } private PlcAddress _In_UPCameracheckNum = new PlcAddress(); /// /// 上相机检测拍照编号 /// public PlcAddress In_UPCameracheckNum { get { return _In_UPCameracheckNum; } set { SetProperty(ref _In_UPCameracheckNum, value); } } private PlcAddress _In_UPCameracheckExe = new PlcAddress(); /// /// 上相机检测拍照触发 /// public PlcAddress In_UPCameracheckExe { get { return _In_UPCameracheckExe; } set { SetProperty(ref _In_UPCameracheckExe, value); } } private PlcAddress _In_FixedCameraPickNum = new PlcAddress(); /// /// 固定相机取料拍照编号 /// public PlcAddress In_FixedCameraPickNum { get { return _In_FixedCameraPickNum; } set { SetProperty(ref _In_FixedCameraPickNum, value); } } private PlcAddress _In_FixedCameraPickExe = new PlcAddress(); /// /// 固定相机取料拍照触发 /// public PlcAddress In_FixedCameraPickExe { get { return _In_FixedCameraPickExe; } set { SetProperty(ref _In_FixedCameraPickExe, value); } } private PlcAddress _In_FixedCameraPutNum = new PlcAddress(); /// /// 固定相机锁附/组装拍照编号 /// public PlcAddress In_FixedCameraPutNum { get { return _In_FixedCameraPutNum; } set { SetProperty(ref _In_FixedCameraPutNum, value); } } private PlcAddress _In_FixedCameraPutExe = new PlcAddress(); /// /// 固定相机锁附/组装拍照触发 /// public PlcAddress In_FixedCameraPutExe { get { return _In_FixedCameraPutExe; } set { SetProperty(ref _In_FixedCameraPutExe, value); } } private PlcAddress _In_FixedCameracheckNum = new PlcAddress(); /// /// 固定相机检测拍照编号 /// public PlcAddress In_FixedCameracheckNum { get { return _In_FixedCameracheckNum; } set { SetProperty(ref _In_FixedCameracheckNum, value); } } private PlcAddress _In_FixedCameracheckExe = new PlcAddress(); /// /// 固定相机检测拍照触发 /// public PlcAddress In_FixedCameracheckExe { get { return _In_FixedCameracheckExe; } set { SetProperty(ref _In_FixedCameracheckExe, value); } } private PlcAddress _In_ProductNum = new PlcAddress(); /// /// 正在锁附/组装编号 /// public PlcAddress In_ProductNum { get { return _In_ProductNum; } set { SetProperty(ref _In_ProductNum, value); } } private PlcAddress _In_RequestPosition = new PlcAddress(); /// /// 请求目标位置 /// public PlcAddress In_RequestPosition { get { return _In_RequestPosition; } set { SetProperty(ref _In_RequestPosition, value); } } private PlcAddress _In_WorkStart = new PlcAddress(); /// /// 锁附/组装开始 =1 /// public PlcAddress In_WorkStart { get { return _In_WorkStart; } set { SetProperty(ref _In_WorkStart, value); } } private PlcAddress _In_WorkDone = new PlcAddress(); /// /// 锁附/组装结束 =1OK =2NG /// public PlcAddress In_WorkDone { get { return _In_WorkDone; } set { SetProperty(ref _In_WorkDone, value); } } private PlcAddress _In_PressureValue = new PlcAddress(); /// /// 压力值 /// public PlcAddress In_PressureValue { get { return _In_PressureValue; } set { SetProperty(ref _In_PressureValue, value); } } private PlcAddress _In_PressureLastValue = new PlcAddress(); /// /// 最终压力值 /// public PlcAddress In_PressureLastValue { get { return _In_PressureLastValue; } set { SetProperty(ref _In_PressureLastValue, value); } } private PlcAddress _In_ScrewTeachExe; /// /// 触发披头视觉矫正 /// public PlcAddress In_ScrewTeachExe { get { return _In_ScrewTeachExe; } set { SetProperty(ref _In_ScrewTeachExe, value); } } private PlcAddress _In_PickINC; /// /// 取一颗螺丝出发信号 /// public PlcAddress In_PickINC { get { return _In_PickINC; } set { SetProperty(ref _In_PickINC, value); } } private PlcAddress _In_DryMode; /// /// 空跑模式 /// public PlcAddress In_DryMode { get { return _In_DryMode; } set { SetProperty(ref _In_DryMode, value); } } private PlcAddress _PUT_Down_Time; /// /// 组装保压时间 /// public PlcAddress PUT_Down_Time { get { return _PUT_Down_Time; } set { SetProperty(ref _PUT_Down_Time, value); } } private PlcAddress _PUT_WetOut_Num; /// /// 组装保压最大值 /// public PlcAddress PUT_WetOut_Num { get { return _PUT_WetOut_Num; } set { SetProperty(ref _PUT_WetOut_Num, value); } } private PlcAddress _PUT_WetOut_Num_max; /// /// 组装保压最大值 /// public PlcAddress PUT_WetOut_Num_max { get { return _PUT_WetOut_Num_max; } set { SetProperty(ref _PUT_WetOut_Num_max, value); } } private PlcAddress _Down_Time; /// /// 后保压时间 /// public PlcAddress Down_Time { get { return _Down_Time; } set { SetProperty(ref _Down_Time, value); } } private PlcAddress _Down_WetOut_Num; /// /// 后保压压力 /// public PlcAddress Down_WetOut_Num { get { return _Down_WetOut_Num; } set { SetProperty(ref _Down_WetOut_Num, value); } } private PlcAddress _Down_WetOut_Num_max; /// /// 后保压最大值 /// public PlcAddress Down_WetOut_Num_max { get { return _Down_WetOut_Num_max; } set { SetProperty(ref _Down_WetOut_Num_max, value); } } private PlcAddress _In_PartCode; /// /// 从PLC中读取当前产品上传对应的零件号 /// public PlcAddress In_PartCode { get { return _In_PartCode; } set { SetProperty(ref _In_PartCode, value); } } private PlcAddress _In_Throw; /// /// 抛料信号 /// public PlcAddress In_Throw { get { return _In_Throw; } set { SetProperty(ref _In_Throw, value); } } private PlcAddress _RunMode; public PlcAddress RunMode { get { return _RunMode; } set { SetProperty(ref _RunMode, value); } } private PlcAddress _AutoRunning; public PlcAddress AutoRunning { get { return _AutoRunning; } set { SetProperty(ref _AutoRunning, value); } } private PlcAddress _ManualMode; public PlcAddress ManualMode { get { return _ManualMode; } set { SetProperty(ref _ManualMode, value); } } private PlcAddress _ClearMode; public PlcAddress ClearMode { get { return _ClearMode; } set { SetProperty(ref _ClearMode, value); } } private PlcAddress _Fault; public PlcAddress Fault { get { return _Fault; } set { SetProperty(ref _Fault, value); } } #endregion public PlcAddressConfig() { } // 初始默认值 public void SetDefaultValue() { // 1. PlcNo 默认 PlcNo = 1; // 辅助局部函数:确保 PlcAddress 实例存在 PlcAddress Ensure(PlcAddress a) { if (a == null) return new PlcAddress(); return a; } // 辅助局部函数:确保 PlcPointAddress 实例存在 PlcPointAddress EnsurePoint(PlcPointAddress p) { if (p == null) return new PlcPointAddress(); return p; } // Out_QrCodeCamera(二维码拍照点位)初始化并赋地址 Out_QrCodeCamera = EnsurePoint(Out_QrCodeCamera); Out_QrCodeCamera.Description = "二维码拍照点位参数"; Out_QrCodeCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].X_Position"; Out_QrCodeCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].X_Velocity"; Out_QrCodeCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Y_Position"; Out_QrCodeCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Y_Velocity"; Out_QrCodeCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Z_Position_Start"; Out_QrCodeCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Z_Velocity_Start"; Out_QrCodeCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Z_Position_Stop"; Out_QrCodeCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Z_Velocity_Stop"; Out_QrCodeCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].U_Position"; Out_QrCodeCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].U_Velocity"; Out_QrCodeCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].R_Position"; Out_QrCodeCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].R_Velocity"; Out_QrCodeCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Torque"; Out_QrCodeCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].Feeder"; Out_QrCodeCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Camera_Scan[{0}].ScrewProNum"; In_QrCodePhotoRequest = Ensure(In_QrCodePhotoRequest); In_QrCodePhotoRequest.Address = "ns=4;s=DB_Communication|ToPC.Camera_ScanExe"; In_QrCodePhotoRequest.DataType = "int16"; In_QrCodePhotoRequest.Description = "二维码拍照请求"; In_QrCodeCamera_ScanNum = Ensure(In_QrCodeCamera_ScanNum); In_QrCodeCamera_ScanNum.Address = "ns=4;s=DB_Communication|Camera_ScanNum"; In_QrCodeCamera_ScanNum.DataType = "int16"; In_QrCodeCamera_ScanNum.Description = "二维码拍照编号"; Out_QrCodePhotoResault = Ensure(Out_QrCodePhotoResault); Out_QrCodePhotoResault.Address = "ns=4;s=DB_Communication|FromPC.Camera_ScanStatus"; Out_QrCodePhotoResault.DataType = "int16"; Out_QrCodePhotoResault.Description = "二维码拍照结果"; // 2. 按 JSON 提供的数据设置默认值(以当前属性名为准) Out_ProductLoadMode = Ensure(Out_ProductLoadMode); Out_ProductLoadMode.Address = "ns=4;s=DB_Communication|FromPC.ProductLoadMode"; Out_ProductLoadMode.DataType = "int16"; Out_ProductLoadMode.Description = "产品切换类型"; Out_WorkMode = Ensure(Out_WorkMode); Out_WorkMode.Address = "ns=4;s=DB_Communication|FromPC.WorkMode"; Out_WorkMode.DataType = "int16"; Out_WorkMode.Description = "工作模式 =1 拍1打1 =2 拍1打所有"; Out_PickPointNum = Ensure(Out_PickPointNum); Out_PickPointNum.Address = "ns=4;s=DB_Communication|FromPC.PickPointNum"; Out_PickPointNum.DataType = "int16"; Out_PickPointNum.Description = "取料位置 =0 不需要取料 =1 需要取料"; Out_DowmCameraNum = Ensure(Out_DowmCameraNum); Out_DowmCameraNum.Address = "ns=4;s=DB_Communication|FromPC.DowmCameraNum"; Out_DowmCameraNum.DataType = "int16"; Out_DowmCameraNum.Description = "下相机拍照次数=0 无"; Out_UpCameraPickNum = Ensure(Out_UpCameraPickNum); Out_UpCameraPickNum.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPickNum"; Out_UpCameraPickNum.DataType = "int16"; Out_UpCameraPickNum.Description = "上相机取料拍照次数=0 无"; Out_UpCameraPutNum = Ensure(Out_UpCameraPutNum); Out_UpCameraPutNum.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPutNum"; Out_UpCameraPutNum.DataType = "int16"; Out_UpCameraPutNum.Description = "上相机放料拍照次数=0 无"; Out_UPCameracheckNum = Ensure(Out_UPCameracheckNum); Out_UPCameracheckNum.Address = "ns=4;s=DB_Communication|FromPC.UPCameracheckNum"; Out_UPCameracheckNum.DataType = "int16"; Out_UPCameracheckNum.Description = "上相机锁附/组装次数=0 无"; Out_FixedCameraPickNum = Ensure(Out_FixedCameraPickNum); Out_FixedCameraPickNum.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPickNum"; Out_FixedCameraPickNum.DataType = "int16"; Out_FixedCameraPickNum.Description = "取料固定位置拍产品相机数量 =0 无"; Out_FixedCameraPutNum = Ensure(Out_FixedCameraPutNum); Out_FixedCameraPutNum.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPutNum"; Out_FixedCameraPutNum.DataType = "int16"; Out_FixedCameraPutNum.Description = "锁附/组装固定位置拍产品相机数量 =0 无"; Out_FixedCameracheckNum = Ensure(Out_FixedCameracheckNum); Out_FixedCameracheckNum.Address = "ns=4;s=DB_Communication|FromPC.FixedCameracheckNum"; Out_FixedCameracheckNum.DataType = "int16"; Out_FixedCameracheckNum.Description = "固定相机检测锁附/组装次数=0 无"; Out_PickCamera = EnsurePoint(Out_PickCamera); // 3. 为其余 Out_* 设置合理默认(基于注释) Out_WorkNum = Ensure(Out_WorkNum); Out_WorkNum.Address = "ns=4;s=DB_Communication|FromPC.WorkNum"; Out_WorkNum.DataType = "int16"; Out_WorkNum.Description = "锁附/组装数量"; Out_DownCameraStatus = Ensure(Out_DownCameraStatus); Out_DownCameraStatus.Address = "ns=4;s=DB_Communication|FromPC.DownCameraStatus"; Out_DownCameraStatus.DataType = "int16"; Out_DownCameraStatus.Description = "下相机拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK"; Out_UpCameraPickStatus = Ensure(Out_UpCameraPickStatus); Out_UpCameraPickStatus.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPickStatus"; Out_UpCameraPickStatus.DataType = "int16"; Out_UpCameraPickStatus.Description = "上相机取料拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK"; Out_UpCameraPutStatus = Ensure(Out_UpCameraPutStatus); Out_UpCameraPutStatus.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPutStatus"; Out_UpCameraPutStatus.DataType = "int16"; Out_UpCameraPutStatus.Description = "上相机锁附/组装拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK"; Out_UPCameracheckStatus = Ensure(Out_UPCameracheckStatus); Out_UPCameracheckStatus.Address = "ns=4;s=DB_Communication|FromPC.UPCameracheckStatus"; Out_UPCameracheckStatus.DataType = "int16"; Out_UPCameracheckStatus.Description = "上相机检测拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK"; Out_FixedCameraPickStatus = Ensure(Out_FixedCameraPickStatus); Out_FixedCameraPickStatus.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPickStatus"; Out_FixedCameraPickStatus.DataType = "int16"; Out_FixedCameraPickStatus.Description = "固定相机取料拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK"; Out_FixedCameraPutStatus = Ensure(Out_FixedCameraPutStatus); Out_FixedCameraPutStatus.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPutStatus"; Out_FixedCameraPutStatus.DataType = "int16"; Out_FixedCameraPutStatus.Description = "固定相机锁附/组装拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK"; Out_FixedCameracheckStatus = Ensure(Out_FixedCameracheckStatus); Out_FixedCameracheckStatus.Address = "ns=4;s=DB_Communication|FromPC.FixedCameracheckStatus"; Out_FixedCameracheckStatus.DataType = "int16"; Out_FixedCameracheckStatus.Description = "固定相机检测拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK"; Out_CameraDone = Ensure(Out_CameraDone); Out_CameraDone.Address = "ns=4;s=DB_Communication|FromPC.CameraDone"; Out_CameraDone.DataType = "int16"; Out_CameraDone.Description = "相机坐标拟合完成"; Out_MesStatus = Ensure(Out_MesStatus); Out_MesStatus.Address = "ns=4;s=DB_Communication|FromPC.MesStatus[{0}]"; Out_MesStatus.DataType = "int16"; Out_MesStatus.Description = "过站信息 =1 允许工作 =2 本站放行 =3 数据上传完成"; // Out_PickCamera 初始化并赋地址 Out_PickCamera = EnsurePoint(Out_PickCamera); Out_PickCamera.Description = "取料拍照点位参数"; Out_PickCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].X_Position"; Out_PickCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].X_Velocity"; Out_PickCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Y_Position"; Out_PickCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Y_Velocity"; Out_PickCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Position_Start"; Out_PickCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Velocity_Start"; Out_PickCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Position_Stop"; Out_PickCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Velocity_Stop"; Out_PickCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].U_Position"; Out_PickCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].U_Velocity"; Out_PickCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].R_Position"; Out_PickCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].R_Velocity"; Out_PickCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Torque"; Out_PickCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Feeder"; Out_PickCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].ScrewProNum"; // Out_Pick(取料点位)初始化并赋地址 Out_Pick = EnsurePoint(Out_Pick); Out_Pick.Description = "取料点位参数"; Out_Pick.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].X_Position"; Out_Pick.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].X_Velocity"; Out_Pick.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Y_Position"; Out_Pick.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Y_Velocity"; Out_Pick.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Position_Start"; Out_Pick.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Velocity_Start"; Out_Pick.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Position_Stop"; Out_Pick.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Velocity_Stop"; Out_Pick.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].U_Position"; Out_Pick.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].U_Velocity"; Out_Pick.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].R_Position"; Out_Pick.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].R_Velocity"; Out_Pick.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Torque"; Out_Pick.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Feeder"; Out_Pick.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].ScrewProNum"; // Out_SecPosCamera(下相机二次定位)初始化并赋地址 Out_SecPosCamera = EnsurePoint(Out_SecPosCamera); Out_SecPosCamera.Description = "下相机二次定位点位参数"; Out_SecPosCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].X_Position"; Out_SecPosCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].X_Velocity"; Out_SecPosCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Y_Position"; Out_SecPosCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Y_Velocity"; Out_SecPosCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Position_Start"; Out_SecPosCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Velocity_Start"; Out_SecPosCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Position_Stop"; Out_SecPosCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Velocity_Stop"; Out_SecPosCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].U_Position"; Out_SecPosCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].U_Velocity"; Out_SecPosCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].R_Position"; Out_SecPosCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].R_Velocity"; Out_SecPosCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Torque"; Out_SecPosCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Feeder"; Out_SecPosCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].ScrewProNum"; // Out_ScrewCamera(锁附拍照点位)初始化并赋地址 Out_ScrewCamera = EnsurePoint(Out_ScrewCamera); Out_ScrewCamera.Description = "锁附拍照点位参数"; Out_ScrewCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].X_Position"; Out_ScrewCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].X_Velocity"; Out_ScrewCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Y_Position"; Out_ScrewCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Y_Velocity"; Out_ScrewCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Position_Start"; Out_ScrewCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Velocity_Start"; Out_ScrewCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Position_Stop"; Out_ScrewCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Velocity_Stop"; Out_ScrewCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].U_Position"; Out_ScrewCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].U_Velocity"; Out_ScrewCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].R_Position"; Out_ScrewCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].R_Velocity"; Out_ScrewCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Torque"; Out_ScrewCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Feeder"; Out_ScrewCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].ScrewProNum"; // Out_Screw(锁附点位)初始化并赋地址 Out_Screw = EnsurePoint(Out_Screw); Out_Screw.Description = "锁附点位参数"; Out_Screw.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].X_Position"; Out_Screw.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].X_Velocity"; Out_Screw.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Y_Position"; Out_Screw.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Y_Velocity"; Out_Screw.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Position_Start"; Out_Screw.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Velocity_Start"; Out_Screw.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Position_Stop"; Out_Screw.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Velocity_Stop"; Out_Screw.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].U_Position"; Out_Screw.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].U_Velocity"; Out_Screw.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].R_Position"; Out_Screw.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].R_Velocity"; Out_Screw.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Torque"; Out_Screw.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Feeder"; Out_Screw.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].ScrewProNum"; // Out_CheckCamera(复检点位)初始化并赋地址 Out_CheckCamera = EnsurePoint(Out_CheckCamera); Out_CheckCamera.Description = "复检点位参数"; Out_CheckCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].X_Position"; Out_CheckCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].X_Velocity"; Out_CheckCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Y_Position"; Out_CheckCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Y_Velocity"; Out_CheckCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Position_Start"; Out_CheckCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Velocity_Start"; Out_CheckCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Position_Stop"; Out_CheckCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Velocity_Stop"; Out_CheckCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].U_Position"; Out_CheckCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].U_Velocity"; Out_CheckCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].R_Position"; Out_CheckCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].R_Velocity"; Out_CheckCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Torque"; Out_CheckCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Feeder"; Out_CheckCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].ScrewProNum"; // Out_IndependentCamer(独立移动相机点位)初始化并赋地址 Out_IndependentCamer = EnsurePoint(Out_IndependentCamer); Out_IndependentCamer.Description = "独立移动相机点位参数"; Out_IndependentCamer.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].X_Position"; Out_IndependentCamer.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].X_Velocity"; Out_IndependentCamer.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Y_Position"; Out_IndependentCamer.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Y_Velocity"; Out_IndependentCamer.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Z_Position_Start"; Out_IndependentCamer.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Z_Velocity_Start"; Out_IndependentCamer.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Z_Position_Stop"; Out_IndependentCamer.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Z_Velocity_Stop"; Out_IndependentCamer.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].U_Position"; Out_IndependentCamer.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].U_Velocity"; Out_IndependentCamer.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].R_Position"; Out_IndependentCamer.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].R_Velocity"; Out_IndependentCamer.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Torque"; Out_IndependentCamer.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].Feeder"; Out_IndependentCamer.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Fixed_camera[{0}].ScrewProNum"; //撕膜点位 Out_RemovePos = EnsurePoint(Out_RemovePos); Out_RemovePos.Description = "撕膜点位参数"; Out_RemovePos.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].X_Position"; Out_RemovePos.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].X_Velocity"; Out_RemovePos.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Y_Position"; Out_RemovePos.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Y_Velocity"; Out_RemovePos.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Z_Position_Start"; Out_RemovePos.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Z_Velocity_Start"; Out_RemovePos.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Z_Position_Stop"; Out_RemovePos.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Z_Velocity_Stop"; Out_RemovePos.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].U_Position"; Out_RemovePos.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].U_Velocity"; Out_RemovePos.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].R_Position"; Out_RemovePos.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].R_Velocity"; Out_RemovePos.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Torque"; Out_RemovePos.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].Feeder"; Out_RemovePos.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Remove[{0}].ScrewProNum"; //压力组装点位 Out_PressurePlace = EnsurePoint(Out_PressurePlace); Out_PressurePlace.Description = "压力组装点位参数"; Out_PressurePlace.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].X_Position"; Out_PressurePlace.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].X_Velocity"; Out_PressurePlace.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Y_Position"; Out_PressurePlace.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Y_Velocity"; Out_PressurePlace.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Z_Position_Start"; Out_PressurePlace.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Z_Velocity_Start"; Out_PressurePlace.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Z_Position_Stop"; Out_PressurePlace.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Z_Velocity_Stop"; Out_PressurePlace.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].U_Position"; Out_PressurePlace.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].U_Velocity"; Out_PressurePlace.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].R_Position"; Out_PressurePlace.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].R_Velocity"; Out_PressurePlace.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Torque"; Out_PressurePlace.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].Feeder"; Out_PressurePlace.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Wetout[{0}].ScrewProNum"; // Out_CheckCamera(附加轴点位)初始化并赋地址, Out_ScrewTeachNum = Ensure(Out_ScrewTeachNum); Out_ScrewTeachNum.Address = "ns=4;s=DB_Communication|FromPC.ScrewTeachNum"; Out_ScrewTeachNum.DataType = "int16"; Out_ScrewTeachNum.Description = "披头矫正的模式,1:初始化时矫正,2:每个产品矫正一次,3:每颗螺丝矫正一次"; Out_ScrewTeachOk = Ensure(Out_ScrewTeachOk); Out_ScrewTeachOk.Address = "ns=4;s=DB_Communication|FromPC.ScrewTeachOK"; Out_ScrewTeachOk.DataType = "int16"; Out_ScrewTeachOk.Description = "下相机矫正披头的结果,1:OK,2:NG"; Out_ScrewFeederIsChanged = Ensure(Out_ScrewFeederIsChanged); Out_ScrewFeederIsChanged.Address = "ns=4;s=DB_Communication|FromPC.PickNumChange"; Out_ScrewFeederIsChanged.DataType = "int16"; Out_ScrewFeederIsChanged.Description = "供料器发生改变"; // 4. In_* 默认(假定从 PLC 读到 PC,使用 ToPC 前缀) In_Code = Ensure(In_Code); In_Code.Address = "ns=4;s=DB_Communication|ToPC.Mes[{0}].Code"; In_Code.DataType = "string"; In_Code.Description = "产品编码"; In_MesCheck = Ensure(In_MesCheck); In_MesCheck.Address = "ns=4;s=DB_Communication|ToPC.Mes[{0}].Check"; In_MesCheck.DataType = "int16"; In_MesCheck.Description = "Mes交互 =1 获取过站信息当站是否生产,=2 上传本站数据"; In_Result = Ensure(In_Result); In_Result.Address = "ns=4;s=DB_Communication|ToPC.Mes[{0}].Product_Status"; In_Result.DataType = "int16"; In_Result.Description = "产品的最终结果,1:OK; 2:NG"; In_DowmCameraNum = Ensure(In_DowmCameraNum); In_DowmCameraNum.Address = "ns=4;s=DB_Communication|ToPC.DowmCameraNum"; In_DowmCameraNum.DataType = "int16"; In_DowmCameraNum.Description = "下相机拍照编号"; In_DowmCameraExe = Ensure(In_DowmCameraExe); In_DowmCameraExe.Address = "ns=4;s=DB_Communication|ToPC.DowmCameraExe"; In_DowmCameraExe.DataType = "int16"; In_DowmCameraExe.Description = "下相机拍照触发"; In_UpCameraPickNum = Ensure(In_UpCameraPickNum); In_UpCameraPickNum.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPickNum"; In_UpCameraPickNum.DataType = "int16"; In_UpCameraPickNum.Description = "上相机取料拍照编号"; In_UpCameraPickExe = Ensure(In_UpCameraPickExe); In_UpCameraPickExe.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPickExe"; In_UpCameraPickExe.DataType = "int16"; In_UpCameraPickExe.Description = "上相机取料拍照触发"; In_UpCameraPutNum = Ensure(In_UpCameraPutNum); In_UpCameraPutNum.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPutNum"; In_UpCameraPutNum.DataType = "int16"; In_UpCameraPutNum.Description = "上相机锁附/组装拍照编号"; In_UpCameraPutExe = Ensure(In_UpCameraPutExe); In_UpCameraPutExe.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPutExe"; In_UpCameraPutExe.DataType = "int16"; In_UpCameraPutExe.Description = "上相机锁附/组装拍照触发"; In_UPCameracheckNum = Ensure(In_UPCameracheckNum); In_UPCameracheckNum.Address = "ns=4;s=DB_Communication|ToPC.UPCameracheckNum"; In_UPCameracheckNum.DataType = "int16"; In_UPCameracheckNum.Description = "上相机检测拍照编号"; In_UPCameracheckExe = Ensure(In_UPCameracheckExe); In_UPCameracheckExe.Address = "ns=4;s=DB_Communication|ToPC.UPCameracheckExe"; In_UPCameracheckExe.DataType = "int16"; In_UPCameracheckExe.Description = "上相机检测拍照触发"; In_FixedCameraPickNum = Ensure(In_FixedCameraPickNum); In_FixedCameraPickNum.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPickNum"; In_FixedCameraPickNum.DataType = "int16"; In_FixedCameraPickNum.Description = "固定相机取料拍照编号"; In_FixedCameraPickExe = Ensure(In_FixedCameraPickExe); In_FixedCameraPickExe.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPickExe"; In_FixedCameraPickExe.DataType = "int16"; In_FixedCameraPickExe.Description = "固定相机取料拍照触发"; In_FixedCameraPutNum = Ensure(In_FixedCameraPutNum); In_FixedCameraPutNum.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPutNum"; In_FixedCameraPutNum.DataType = "int16"; In_FixedCameraPutNum.Description = "固定相机锁附/组装拍照编号"; In_FixedCameraPutExe = Ensure(In_FixedCameraPutExe); In_FixedCameraPutExe.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPutExe"; In_FixedCameraPutExe.DataType = "int16"; In_FixedCameraPutExe.Description = "固定相机锁附/组装拍照触发"; In_FixedCameracheckNum = Ensure(In_FixedCameracheckNum); In_FixedCameracheckNum.Address = "ns=4;s=DB_Communication|ToPC.FixedCameracheckNum"; In_FixedCameracheckNum.DataType = "int16"; In_FixedCameracheckNum.Description = "固定相机检测拍照编号"; In_FixedCameracheckExe = Ensure(In_FixedCameracheckExe); In_FixedCameracheckExe.Address = "ns=4;s=DB_Communication|ToPC.FixedCameracheckExe"; In_FixedCameracheckExe.DataType = "int16"; In_FixedCameracheckExe.Description = "固定相机检测拍照触发"; In_ProductNum = Ensure(In_ProductNum); In_ProductNum.Address = "ns=4;s=DB_Communication|ToPC.ProductNum"; In_ProductNum.DataType = "int16"; In_ProductNum.Description = "正在锁附/组装编号"; In_RequestPosition = Ensure(In_RequestPosition); In_RequestPosition.Address = "ns=4;s=DB_Communication|ToPC.RequestPosition"; In_RequestPosition.DataType = "int16"; In_RequestPosition.Description = "请求目标位置"; In_WorkStart = Ensure(In_WorkStart); In_WorkStart.Address = "ns=4;s=DB_Communication|ToPC.WorkStart[{0}]"; In_WorkStart.DataType = "int16"; In_WorkStart.Description = "锁附/组装开始 =1"; In_WorkDone = Ensure(In_WorkDone); In_WorkDone.Address = "ns=4;s=DB_Communication|ToPC.WorkDone[{0}]"; In_WorkDone.DataType = "int16"; In_WorkDone.Description = "锁附/组装结束 =1OK =2NG"; In_PressureValue = Ensure(In_PressureValue); In_PressureValue.Address = "ns=4;s=DB_DriveControl|AICtrl[{0}].Status.UserData"; In_PressureValue.DataType = "float"; In_PressureValue.Description = "压力值"; In_PressureLastValue = Ensure(In_PressureLastValue); In_PressureLastValue.Address = "ns=4;s=DB_DriveControl|AICtrl[{0}].Status.EndValue"; In_PressureLastValue.DataType = "float"; In_PressureLastValue.Description = "最终压力值"; In_ScrewTeachExe = Ensure(In_ScrewTeachExe); In_ScrewTeachExe.Address = "ns=4;s=DB_Communication|ToPC.ScrewTeachExe"; In_ScrewTeachExe.DataType = "bool"; In_ScrewTeachExe.Description = "触发披头视觉矫正"; In_PickINC = Ensure(In_PickINC); In_PickINC.Address = "ns=4;s=DB_Communication|ToPC.PickINC"; In_PickINC.DataType = "int16"; In_PickINC.Description = "取一颗螺丝触发信号"; In_DryMode = Ensure(In_DryMode); In_DryMode.Address = "ns=4;s=DB_Control|Mode.Status.DryMode"; In_DryMode.DataType = "bool"; In_DryMode.Description = "空跑模式"; PUT_Down_Time = Ensure(PUT_Down_Time); PUT_Down_Time.Address = "ns=4;s=DB_other|PUT_Down_Time"; PUT_Down_Time.DataType = "int32"; PUT_Down_Time.Description = "组装保压时间"; PUT_WetOut_Num = Ensure(PUT_WetOut_Num); PUT_WetOut_Num.Address = "ns=4;s=DB_other|PUT_WetOut_Num"; PUT_WetOut_Num.DataType = "float"; PUT_WetOut_Num.Description = "组装保压压力"; PUT_WetOut_Num_max = Ensure(PUT_WetOut_Num_max); PUT_WetOut_Num_max.Address = "ns=4;s=DB_other|PUT_WETOUT_NUM_MAX"; PUT_WetOut_Num_max.DataType = "float"; PUT_WetOut_Num_max.Description = "组装保压压力最大值"; Down_Time = Ensure(Down_Time); Down_Time.Address = "ns=4;s=DB_other|Down_Time"; Down_Time.DataType = "int32"; Down_Time.Description = "后保压时间"; Down_WetOut_Num = Ensure(Down_WetOut_Num); Down_WetOut_Num.Address = "ns=4;s=DB_other|WetOut_Num"; Down_WetOut_Num.DataType = "float"; Down_WetOut_Num.Description = "后保压压力"; Down_WetOut_Num_max = Ensure(Down_WetOut_Num_max); Down_WetOut_Num_max.Address = "ns=4;s=DB_other|WetOut_MAX"; Down_WetOut_Num_max.DataType = "float"; Down_WetOut_Num_max.Description = "后保压压力最大值"; Out_PartCode = Ensure(Out_PartCode); Out_PartCode.Address = "ns=4;s=DB_Communication|FromPC_code[0]"; Out_PartCode.DataType = "string"; Out_PartCode.Description = "零件的扫码编号写入到PLC"; In_PartCode = Ensure(In_PartCode); In_PartCode.Address = "ns=4;s=DB_Communication|ToPC_code[0]"; In_PartCode.DataType = "string"; In_PartCode.Description = "从PLC中读取当前产品上传对应的零件号"; In_Throw = Ensure(In_Throw); In_Throw.Address = "ns=4;s=DB_Communication|Throw[0]"; In_Throw.DataType = "Bool"; In_Throw.Description = "抛料信号"; AutoRunning = Ensure(AutoRunning); AutoRunning.Address = "ns=4;s=DB_Control|Mode.Status.AutoRunning"; AutoRunning.DataType = "Bool"; AutoRunning.Description = "生产模式"; ManualMode = Ensure(ManualMode); ManualMode.Address = "ns=4;s=DB_Control|Mode.Status.ManualMode"; ManualMode.DataType = "Bool"; ManualMode.Description = "维修模式"; ClearMode = Ensure(ClearMode); ClearMode.Address = "ns=4;s=DB_Control|Mode.Status.ClearMode"; ClearMode.DataType = "Bool"; ClearMode.Description = "流线模式"; // 说明:若项目中 PlcAddress 的实际属性名或类型与此不同(例如使用枚举、不同字段名), // 请根据实际类型调整赋值。本方法主要提供合理的默认字符串地址、数据类型及描述,便于后续从配置覆盖。 } } }