SIMATIC BATCH报表开发说明

SIMATIC BATCH报表开发说明

在这里插入图片描述

开始前准备

  • 在batch项目设置中找到报表服务主机:

  • 在报表服务器上打开报表配置工具

默认连接:

  • ie打开报表管理地址:

  • 找到报表列表,如果找不到点击右上角详细视图:

以“_batch”命名结尾的报表将会在batch打印预览中显示!

  • 点击报表右侧小三角,在菜单中选择最后一项,即可在report builder中编辑报表:

在report builder中自定义报表

新建报表

点击左上角按钮,新建空白报表,命名以“_batch”结尾,CTRL+S保存位置如下:

这样我们在batch里打印预览就可以选择我们保存的报表,当然目前为空白;

添加数据源

  • 右键数据源文件夹,点击添加数据源,选择batch默认的数据源:

添加参数

右键参数文件夹,可以添加参数:

在batch中每次打印报表会向模板传递一些默认参数,目前我已知如下,这三个参数必须添加:

schemaname:文本类型,传递过来的数据名,针对ph服务器上存储报表时,该参数很关键

objectguid:文本类型,batch打印报表时,传入订单批唯一id

lcid :整数类型,语言id

添加后如下:

添加数据集

右键数据集,添加:

常用数据集:

订单基础信息

DECLARE @stmt nvarchar(max)
              SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
             SET              @stmt = '
              SELECT     DISTINCT bat.Name, bat.Description, bat.OBJID, bat.State, bat.ExState,
              cast(cast(bat.Quantity as DECIMAL(15,6)) as float) as Quantity,
              cast(cast(bat.ActQuantity as DECIMAL(15,6)) as float) as ActQuantity,
              bat.FormulaName, bat.FormulaCategoryName, bat.FormulaVersion, bat.MRecipeName,
              bat.MRecipeVersion,units.UnitName,
              (case
              when bat.PlanStart > bat.PlanEnd then null
                else [' + @schemaname + '].[batch_Seconds2Duration](DATEDIFF(second,  bat.PlanStart, bat.PlanEnd), '+STR(@lcid)+')
               end)    as DurationPlanned,              
              CONVERT(varchar(19), bat.ActStart, 20) as [ActStart],
              bat.[ActEnd] as [ActEnd],
              (case (bat.ActEnd)
              when null then null
              else [' + @schemaname + '].[batch_Seconds2Duration](DATEDIFF(second,  bat.ActStart, bat.ActEnd), '+STR(@lcid)+')
              end) as [DurationActual],
              ord.name as order_name, bat.ProductCode as Code,
              ordercat.name as ordercat_name,
              bat.ProductName AS mat_name, uom.Name AS uom_name,
              GETUTCDATE() as PrintTime
              FROM 
              [' + @schemaname + '].vBatch as bat left outer join [' + @schemaname + '].vUoM as uom
              ON (uom.PCellGUID = bat.PCellGUID and uom.OBJID = bat.UOMId and uom.OTID = 27)
              LEFT OUTER JOIN
              [' + @schemaname + '].[vOrder] as ord ON bat.ROOTGUID = ord.OGUID
              left join  [' + @schemaname + '].[vRecipeUnitProcedure] as units on  units.ROOTGUID = bat.OGUID
              LEFT OUTER JOIN  [' + @schemaname + '].[vOrderCategory] as ordercat on (ord.ROOTGUID = ordercat.OGUID)
              WHERE     (bat.OGUID = ''' + @objectguid + ''')'
              EXEC (@stmt)

单元操作的开始和结束统计

DECLARE @stmt nvarchar(max)
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
 SET  @stmt = ' select t1.[Name],CONVERT(varchar(19), t1.[Start], 20) as [Start],CONVERT(varchar(19), t1.[End], 20) as [End],t1.OTID,t1.Description,t1.DataDescription  from [' + @schemaname + '].vRecipeElement t1  
  where t1.ROOTGUID=''' + @objectguid + ''''

 EXEC (@stmt)

输入输出物料或者参数统计

DECLARE @stmt nvarchar(max)
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET @stmt = ' select  CONVERT(varchar(19), t0.[Start], 20) as [Start],CONVERT(varchar(19), t0.[End], 20) as [End],t0.name as elname,t1.sp_matname,t1.name,t1.sp_float,t1.av_float,t1.UoMName,t1.DataTypeId,t1.POBJID,t1.P2OBJID,
  t1.OBJID from 
  [' + @schemaname + '].vRecipeElementOnline t0 left join [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].vOnlineParameterValue t1 
   on t0.OBJID = t1.POBJID and t0.ROOTGUID = t1.ROOTGUID where t0.ROOTGUID=''' + @objectguid + ''''
EXEC (@stmt)

归档数据查询

DECLARE @stmt nvarchar(max) 
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
declare @start varchar(100) 
declare @end varchar(100) 
select @start=CONVERT(varchar(100),t1.Start,0),@end=CONVERT(varchar(100),t1.[End],0) from [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].vRecipeElementOnline T1 WHERE T1.Name = 'TMC3' 
SET @stmt = ' 
select CONVERT(varchar(19), t1.TagValueTime, 20) as TagValueTime,t1.TagValue as tt_v,t2.TagValue as pt_v from ( select t1.TagName,max(t1.TagValue) as TagValue,t1.TagValueTime from ['+@schemaname+'].vOnlineTagExtended t1 where t1.ROOTGUID='''+@objectguid+''' 
and DateName(minute,t1.TagValueTime)%5=0 and ( t1.TagValueTime between '''+@start+''' and '''+@end+''' ) and t1.TagName=''OT_SP'' group by t1.TagValueTime,t1.TagName) t1 
left join 
(select t1.TagName,max(t1.TagValue) as TagValue,t1.TagValueTime from [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].vOnlineTagExtended t1 where t1.ROOTGUID='''+@objectguid+''' 
and ( t1.TagValueTime between '''+@start+''' and '''+@end+''' ) and t1.TagName=''Mat'' group by t1.TagValueTime,t1.TagName) t2 on t1.TagValueTime = t2.TagValueTime' 
EXEC (@stmt)

以上语句基本可以满足常用的需求!

表格绑定数据

右键报表空白处,插入表,然后点击表右键,设置属性:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-anaKboP6-1654667653391)(file://C:\Users\ThinkPad\AppData\Roaming\marktext\images\2022-04-10-15-35-45-image.png?msec=1654667644406)]

设置数据集:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HgbibmOL-1654667653392)(file://C:\Users\ThinkPad\AppData\Roaming\marktext\images\2022-04-10-15-36-39-image.png?msec=1654667644406)]

设置好数据集后,就可以在表格里选择相应字段了;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zEiazEKB-1654667653392)(file://C:\Users\ThinkPad\AppData\Roaming\marktext\images\2022-04-10-15-38-42-image.png?msec=1654667644406)]

常用batch表视图说明:

  • batch批订单主表
  select * from [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].vBatch t1
  where t1.OGUID='036D6A69-70AC-4F38-85CF-453D2F0521E4';
  • 单元或操作的开始结束时间
   select * from [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].vRecipeElementOnline; 
  • 归档数据查询
    select t1.TagName,t1.TagValue,t1.TagValueTime from [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].vOnlineTagExtended t1 where
    t1.ROOTGUID='036D6A69-70AC-4F38-85CF-453D2F0521E4' and t1.TagName='OT_SP'
  • 归档点位
  select * from  [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].vOfflineTag
  • 单元名称
 select * from  [SIMATIC_BATCH_SB9_2763-9351-49_V9_00_00].[vRecipeUnitProcedure] t 

最后

不明白不清楚的请联系我:

wx:dengchunyi2
tel:15071747425

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Simatic Batch是西门子公司推出的一种过程自动化控制系统。它是一种应用于批处理过程的中央控制系统,可在各种行业中实现对生产过程的自动化控制和优化。Simatic Batch提供了灵活性和可靠性,可满足不同行业和生产场景的要求。 Simatic Batch具有以下特点和功能: 1. 良好的过程控制:Simatic Batch能够根据事先设定的程序自动控制和调整生产过程中的参数,确保产品质量和生产效率的稳定和一致性。 2. 批处理过程管理:通过可视化的界面,操作人员可以方便地管理和监控批处理过程,包括任务调度、工艺参数设置、批处理步骤控制等。 3. 强大的数据处理和分析能力:Simatic Batch能够采集、存储和分析各种生产数据,根据数据结果对生产过程进行调整和优化,提高工艺效率。 4. 系统的可扩展性和可定制性:Simatic Batch可以根据不同行业和生产需求进行定制,集成各种传感器、执行器和控制设备,实现与其他系统的无缝对接。 5. 高可靠性和安全性:Simatic Batch采用先进的安全措施,确保生产过程的安全性和数据的保密性,避免非法访问和操作。 总之,Simatic Batch是一种先进的自动化控制系统,可以实现批处理过程的自动化控制和优化,提高生产效率和产品质量。它为不同行业的企业提供了一种可靠、安全和灵活的解决方案,帮助企业提升竞争力和适应快速变化的市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值