PlantSimulation 底层Dll二次开发-工作站设定

PlantSimulation 底层Dll二次开发-工作站设定

PlantSimulation 底层Dll二次开发-工作站设定 关于设备操作的常规API 交互方案

///
/// 设置目标设备上件时间
///
/// 目标工位
/// SetupTime

///
/// 设置目标工位工位标签
///
/// 目标工位
/// StationLabel

///
/// 启动目标工位并开始加工
///
/// 目标工位
/// StartProcess

bool StationOprator::SetStationProcessTime(UF_Value Station, double ProcessTime)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_TIME;
	value.value.time = ProcessTime;
	assignValue(TagetMechine.value.object, "proctime", 0, &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 设置目标设备上件时间
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="SetupTime">SetupTime</param>
bool StationOprator::SetStationSetupTime(UF_Value Station, double SetupTime)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_TIME;
	value.value.time = SetupTime;
	assignValue(TagetMechine.value.object, "SetUptime", 0, &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 设置目标工位恢复时间
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="RecoveryTime">RecoveryTime</param>
bool StationOprator::SetStationRecoveryTime(UF_Value Station, double RecoveryTime)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_TIME;
	value.value.time = RecoveryTime;
	assignValue(TagetMechine.value.object, "RecoveryTime", 0, &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 设置目标工位 工位名称
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="StationName">StationName</param>
bool StationOprator::SetStationName(UF_Value Station, char* StationName)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_STRING;
	value.value.string = StationName;
	assignValue(TagetMechine.value.object, "Name", 0, &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 设置目标工位工位标签
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="StationLabel">StationLabel</param>
bool StationOprator::SetStationLabel(UF_Value Station, char* StationLabel)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_STRING;
	value.value.string = StationLabel;
	assignValue(TagetMechine.value.object, "label", 0, &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 启动目标工位并开始加工
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="StartProcess">StartProcess</param>
bool StationOprator::StartStationProcess(UF_Value Station, bool StartProcess)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_BOOLEAN;
	value.value.boolean = StartProcess;
	assignValue(TagetMechine.value.object, "startprocessing", 0, &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 启动目标工位的Setup
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="StartSetUp">StartSetUp</param>
bool StationOprator::StartStationSetUp(UF_Value Station, bool StartSetUp)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_BOOLEAN;
	value.value.boolean = StartSetUp;
	assignValue(TagetMechine.value.object, "AutomaticProcessing", "boolean", &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// 启动目标工位的Setup
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="StartSetUp">AutomaticProcessing</param> AutomaticSetUp
bool StationOprator::SetStationAutomaticProcessing(UF_Value Station, bool AutomaticProcessing)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_BOOLEAN;
	value.value.boolean = AutomaticProcessing;
	assignValue(TagetMechine.value.object, "AutomaticProcessing", "boolean", &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 设置目标设备是否自动SetUp
/// </summary>
/// <param name="Station">目标工位</param>
/// <param name="AutomaticSetUp"></param>
/// <returns></returns>
bool StationOprator::SetStationAutomaticSetUp(UF_Value Station, bool AutomaticSetUp)
{
	UF_Value TagetMechine = Station;
	if ((TagetMechine.type != UF_OBJECT) || !TagetMechine.value.object)
		return false;
	UF_Value value;
	value.type = UF_BOOLEAN;
	value.value.boolean = AutomaticSetUp;
	assignValue(TagetMechine.value.object, "AutomaticSetUp", "boolean", &value);
	return TRUE;//时间已赋值并已开启设备加工
}
/// <summary>
/// 同时设置目标设备的名称及标签
/// </summary>
/// <param name="Station"></param>
/// <param name="StationName"></param>
/// <param name="StationLabel"></param>
/// <returns></returns>
bool StationOprator::SetStationNameAndLabel(UF_Value Station, char* StationName, char* StationLabel)
{
	if (SetStationName(Station, StationName) && SetStationLabel(Station, StationLabel))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/// <summary>
/// 设置目标工位 装配时间 、加工时间
/// </summary>
/// <param name="Station"></param>
/// <param name="SetupTime"></param>
/// <param name="ProcessTime"></param>
/// <returns></returns>
bool StationOprator::SetStationSetupTimeAndProcessTime(UF_Value Station, double SetupTime, double ProcessTime)
{
	if (SetStationSetupTime(Station, SetupTime) && SetStationProcessTime(Station, ProcessTime))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/// <summary>
/// 设置目标工位 装配时间 、加工时间、恢复时间
/// </summary>
/// <param name="Station"></param>
/// <param name="SetupTime"></param>
/// <param name="ProcessTime"></param>
/// <param name="RecoveryTime"></param>
/// <returns></returns>
bool StationOprator::SetStationSetupTimeAndProcessTimeAndRecoveryTime(UF_Value Station, double SetupTime, double ProcessTime, double RecoveryTime)
{
	if (SetStationSetupTime(Station, SetupTime) && SetStationProcessTime(Station, ProcessTime) && SetStationProcessTime(Station, RecoveryTime))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/// <summary>
/// 设置目标工位 装配时间 、加工时间并启动设备执行加工
/// </summary>
/// <param name="Station"></param>
/// <param name="SetupTime"></param>
/// <param name="ProcessTime"></param>
/// <param name="StartProcess"></param>
/// <returns></returns>
bool StationOprator::SetStationSetupTimeAndProcessTimeAndStartProcess(UF_Value Station, double SetupTime, double ProcessTime, bool StartProcess)
{
	if (SetStationSetupTime(Station, SetupTime) && SetStationProcessTime(Station, ProcessTime) && StartStationProcess(Station, StartProcess))
	{
		return true;
	}
	else
	{
		return false;
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值