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 的实际属性名或类型与此不同(例如使用枚举、不同字段名),
// 请根据实际类型调整赋值。本方法主要提供合理的默认字符串地址、数据类型及描述,便于后续从配置覆盖。
}
}
}