AHTC/RGD/RGD.OPCClient/IGetDeviceState.cs
2025-05-19 09:22:33 +08:00

86 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace RGD.OPCClient
{
/// <summary>
/// 获得设备状态的接口
/// 创建者Richard.Liu
/// </summary>
public interface IGetDeviceState
{
/// <summary>
///1、下位机给上位机发送设备任务状态信息
///检测开关: 0-无货1-有货
///确认按钮:
///第1字节
///一个变化的值,每确认一次,该值变化一次,以标志一个
///新的确认消息。例如可以是0、1交替变化也可以是递
///增变化。
///第2字节
///1-无货确认
///2-有货确认
///其他设备:
///第1字 节:设备状态
///堆垛机0-空闲
///1-正在运行
///2-任务完成
///3-要求调度重发命令
///4-通知调度取消当前任务
///其它值表示错误
/// 穿梭车:
/// 0-空闲
/// 1-正在运行
/// 2-完成
/// 3-要求调度重发命令
/// 4-通知调度取消当前任务
/// 其它值表示错误
/// 输送机:
/// 0-空闲
/// 1-正在运行
/// 2-完成只有PC下发的目标设备才允许汇报完成
/// 组合机构需要单独定义状态
/// 其它值表示错误
/// 第2、3字节 任务号,即上位机下达任务时的任务号
/// 第4、5、6、7字节
/// 堆垛机、穿梭车:
/// 终点X坐标沿轨道方向
/// 第8字节以后部分只对堆垛机有意义
/// 第8、9、10、11字节
/// 终点Y坐标沿高度方向
///
/// 2.下位机给上位机发送条码信息
/// 托盘条码:
/// 第1-10字节由左到右依次存放托盘上的10位条形码信息
/// 烟箱一号工程码:
/// 第1-9字节 由左到右依次存放烟箱上的后9位一号工程码信息
/// 一号工程码是32位相同品牌烟箱的一号工程码的前23位相同
/// 所以只存放后9位条码。每个码垛位进烟口有两个烟箱一号工程码存放区
/// 共18个字节上位机一次将两个烟箱一号工程码的信息同时读取。
/// 上位机成功读取18个字节后把这18个字节全部写入零
/// 下位机只有检测到18个字节全都是零时才可以写入新的一号工程码信息。
///
/// 3.下位机给上位机发送现场控制触摸屏申请信号
/// 第1字节 申请指令
/// 1- 重发当前设备指令
/// 2- 申请修改当前设备所执行任务的目标位置
/// 第2、3字节 设备索引(当前申请设备的索引)
/// 第4、5字节 任务号(需要修改目标位置的任务号)
/// 第6、15字节 托盘条码(当前申请设备上的托盘的条码)
/// 下位机可能因开关误动作等情况而引起任务记忆丢失,
/// 此时根据设备上停放托盘的条码可以重新申请获得任务。
/// 上位机收到此申请后重新发送当前设备的指令。
/// 有设备发生故障时,下位机可以申请修改任务的目标位置。
/// 上位机收到此申请后,如果可以找到新的路径,则修改此任务号的目标位置。
/// 当申请指令为1时任务号可以是任意值当申请指令为2时托盘条码可以是任意值。
/// </summary>
/// <param name="DeviceIndex">设备编号</param>
/// <returns>返回22个字节的状态</returns>
int[] GetDeviceState(int DeviceIndex);
string GetStringData(int DeviceIndex, int TaskIndex);
string CommLayerError
{
get;
set;
}
}
}