皮带秤的计量方式

  皮带秤的计量方式

董建刚

    目前煤矿采取皮带方式运煤十分普遍,因为皮带秤只需前期投入资金设备,后续维护运营所需成本非常低,而且设备连续工作时间长、效率高、要求人力少,监控皮带发运数量成了煤炭运销工作的难点和重点。杭州国泰科技有限公司根据煤炭企业皮带发运的特点,结合自身在煤炭运销信息化领域的经验,推出了切合实际的皮带秤远程集中计量系统。该系统能根据皮带现场的实际情况,实现皮带秤的远程计量,不但可以对电子皮带的工作状态进行远程监控,而且可以实现皮带秤运行数据的实时管理和远程传输,达到远程集中管理、远程集中称重和防xx目的。

    皮带秤远程集中计量系统采取多种管控方式,针对矿业企业皮带传输的目标客户不一样、运行时间不一样等特点,我们设计了手工/自动两种皮带秤系统计量方式,用户可以随时进行灵活切换。下面详细介绍两种计量方式。

手工计量控制方式。该方式适用于利用皮带进行装船或者有严格时间段进煤的业务类型。皮带秤监磅员在皮带开启前与远程计量中心司磅员进行电话确认,待远程计量人员保存初始重量并确认后方可开启皮带,在关闭皮带后也需与远程计量人员电话沟通并确认保存最终重量,并及时核对远程计量中心打印的磅单。司磅员通过皮带秤远程称重客户端手工保存仪表初始量或者结束量、图片等信息,系统自动完成净重信息的核算。该控制方式操作模式比较简单,一般一个司磅员能同时管控5-8个皮带秤,如下图,皮带秤远程称重客户端集成了5套皮带机,轮询切换各个皮带机运行情况。

 

    自动计量方式。该方式适用于进煤时间段不确定的业务类型,如电厂一般需要全天24小时不定时进煤,那么如果采用远程手工计量控制方式会大大增加员工工作量。在国泰皮带秤远程集中计量系统中,针对每个皮带秤的配置信息,都可以进行参数设置,如自动计量模式启用设定、自动保存初始值时间设定、自动保存结束值时间设定、皮带开停状态对应信号量设置等等(默认系统设置一个时间点,如AM:6表示每天早上6点数据自动保存,当天6点仪表的累计量减去前一日6点仪表的累计量即为前一日的发运量)。系统会根据设定的时间,自动提取消息队列中对应皮带秤的仪表数据,并在数据库中完成自动匹配,计算出该周期内的发运净重,同时截取皮带秤相关视频图片,自动保存仪表数据、当时图片等信息。国泰皮带秤远程集中计量系统同时考虑了自动方式下,如果仪表清零情况的处理,系统针对每个皮带秤设置了仪表数据缓存,当发生清零情况下,系统服务会自动对清零前后的数据进行匹配记录,保证发运数据的正确性。自动保存核心业务逻辑程序如下:

/// <summary>

/// 定时自动保存皮带秤数据,默认采取单一时间

 </summary>

/// <param name="hardwareInfo">硬件消息</param>

/// <param name="beltAutoBuffer">皮带秤的缓存信息</param>

public void AutoSaveBeltData(HardwareInfo hardwareInfo, BeltAutoBuffer beltAutoBuffer)       {

     if (beltAutoBuffer != null && beltAutoBuffer.SaveStyle != null && beltAutoBuffer.SaveStyle.Count > 0) {

   string balanceName = hardwareInfo.Balance;

if (beltAutoBuffer.SaveStyle.ContainsKey(balanceName))

{

WeighBdForZKBelt beltBD = new WeighBdForZKBelt();

string startHour;

beltAutoBuffer.StartHour.TryGetValue(balanceName, out startHour);

DateTime startTime= Now.Date.AddHours(Convert.ToDouble(startHour));

TimeSpan startTs = DateTime.Now - startTime;

//处理是否是仪表清零的情况

if (beltAccumulateBuffer.ContainsKey(balanceName))

{

decimal preAccumulateNum = 0;

beltAccumulateBuffer.TryGetValue(balanceName,out preAccumulateNum);

  if (hardwareInfo.BeltInfo.AccumulateNum == 0 || preAccumulateNum - hardwareInfo.BeltInfo.AccumulateNum > 1)

  {

    //出现清零情况,先保存上一毛重,再保存下一皮重

   WeighDTO[] preWeighDtos = beltBD.FindUnpairWeigh(balanceName, Now.Date.AddDays(-1)); //查询昨日以后的未匹配记录

if (preWeighDtos != null && preWeighDtos.Length > 0){

//先保存上一毛重

this.AddSecondBeltWeigh(balanceName, preAccumulateNum, preWeighDtos[0]);

 }

//再保存下一皮重

this.AddFirstBeltWeigh(balanceName, hardwareInfo.BeltInfo.AccumulateNum);

//处理清零时间缓存

if (beltZeroList.ContainsKey(balanceName))

beltZeroList[balanceName] = DateTime.Now.Date;

else beltZeroList.Add(balanceName, DateTime.Now.Date);

 

//记录日志

BeltLogBD logBD = new BeltLogBD();

BeltLogDTO logDTO = new BeltLogDTO();

OrganizationBD organizationBD = new OrganizationBD();

QueryParams[] paras = new QueryParams[1];

paras[0] = new QueryParams("Name", balanceName, OperationType.Equal);

BalanceDTO[] balanceDtos = organizationBD.FindBalanceByCondition(paras, null, 0, 1);

logDTO.Balance = balanceDtos[0];

logDTO.Content = balanceName + "于" + DateTime.Now + "仪表清零;清零前重量:" + preAccumulateNum.ToString() + ",清零后重量:" + hardwareInfo.BeltInfo.AccumulateNum.ToString();

logDTO.LogType = BeltLogType.Clear;

logDTO.LogTime = DateTime.Now;

logBD.AddBeltLog(logDTO);

}

beltAccumulateBuffer[balanceName] = hardwareInfo.BeltInfo.AccumulateNum;

}

else beltAccumulateBuffer.Add(balanceName, hardwareInfo.BeltInfo.AccumulateNum);

if (startTs.TotalMinutes > 0 && startTs.TotalMinutes < 5)

{

WeighDTO[] weighDtos = null;

 //当日发生过清零情况

if (beltZeroList.ContainsKey(balanceName) &&

beltZeroList[balanceName].Equals(Now.Date))

weighDtos = beltBD.FindUnpairWeigh(balanceName, DateTime.Now.Date);

else //查询昨日或之前的未匹配过皮重                       

  weighDtos = beltBD.FindYesterdayUnpairWeigh(balanceName, startTime);

  if (weighDtos != null && weighDtos.Length > 0)

   this.AddSecondBeltWeigh(balanceName, hardwareInfo.BeltInfo.AccumulateNum, weighDtos[0]);

//保存当日皮重

WeighDTO[] todayWeighDtos = beltBD.FindUnpairWeigh(balanceName, startTime);

if (todayWeighDtos == null || todayWeighDtos.Length <= 0)

this.AddFirstBeltWeigh(balanceName, hardwareInfo.BeltInfo.AccumulateNum);

}

   }

  }

}

郑重声明:资讯 【皮带秤的计量方式】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——