通过WinCC 的Global Script 实现报表功能
西门子wincc数据报表的实现方式

西门子wincc数据报表的实现方式【摘要】随着工业领域的不断发展,用户需求一种以人机界面为控制主体的视窗控制体系的过程监控系统,以此来取代原来的以现场操作按钮和仪表为主的操作体系。
通过开放性、灵活性的可视化界面,迅速并直接的处理生产过程中的事件信息。
凭借这种战略思想,WINCC,运行于Windows系统下的控制中心,已发展成为工业市场领域的领导者,乃至业界遵循的标准。
Wincc集生产自动化和过程自动化于一体,应用于各种工业自动化领域,是提高工厂生产效率的上乘之选,并支持多种语言。
工业生产中,报表系统通常是控制系统中非常重要的一部分,是企业管理的基本措施和途径,它通常用来记录重要的现场工艺参数和统计信息。
早期,都是由人工记录的方式进行统计汇总,数据也只能有一种几乎只有记录员才能理解的表现形式,且这种形式难于更改。
当进入计算机时代后,报表这部分工作完全可以由计算机软件来实现,数据动态化,格式多样化,用户可以自己修改数据或格式。
针对自动化工程师而言,如何利用wincc软件来开发适合用户需求的报表,并且高效灵活的解决统计数据是自动化工程师必须掌握的一门技术,也是企业日常生产维护和管理中不可或缺的管理手段之一。
报表的变现形式分为许多种,大体上可分为两种形式:曲线格式和表格格式。
曲线形式主要是利用WINCC自带控件来实现,在控件属性中,可对趋势、常规、字体、趋势窗口、时间轴、数值轴、工具栏、状态栏、在线组态、导出中具体参数进行设置,以符合用户的生产需求和审美要求。
例如,时间轴可设成1分钟,1小时或者1天的形式,数值轴可以设置成根据实际测量值实时改变数值轴的范围。
应用在线趋势曲线的前提条件是,用户需要在变量记录里设置需要归档的变量内容和归档周期等一系列参数。
针对于一些特殊归档要求,曲线形式的归档可能满足不了用户的需求,往往用户需要生成一种支持打印功能并以表格形式查询的数据归档报表。
针对于这类复杂的报表,可以通过用户归档和Wincc报表编辑器来实现此类功能。
WinCC数据报表实现方法介绍

WinCC数据报表实现方法介绍在工业生产中报表一直占有非常重要的部分,它一般用来记录现场的工艺参数和统计信息。
早期是由人工抄录然后统计出相关的报表。
进入计算机控制阶段,这份工作就需要工控软件来实现。
对于工控行业的工程师来说:如何开发适合用户需求的报表一直是个难题。
接下来就从报表的需求分析、WinCC报表系统的应用、复杂报表的WinCC报表系统实现这几个部分来分别介绍。
最后总结出WinCC报表系统在应用的优缺点和常见的问题的解决方法。
1.报表的需求分析从需求上来讲报表一般分为:内容上的需求、样式上和任务上的需求。
内容需求内容上一般涉及到数据的求和、平均、最大值、最小值等计算,同时也会涉及到关系的处理,比如班组相关对应信息的统计分析等。
下面是一个很典型的报表需求,就很能说明这样的问题:图1. 月报表分析此报表是典型的工业现场应用,在数据采集没有难度。
唯一的难度在于四班三倒后,每个月班的出勤日是不一样的,这样对于月报来说,计算出本月每个班的出勤日是需要些算法。
此类报表在连续生产的行业需求很广泛。
比如:钢铁冶金行业需要一天24小时不停运转的系统。
还有一种内容上是分总的关系,就是一部分是简单的数据记录,另一部分是对上一部分数据的统计,比如汇总、求和、平均等。
如下图也是很典型的应用:图2. 总分报表另外一种就是涉及到混合排列的问题,一张表上既有分项数据,中间也涉及到统计信息,同时也会添加一些实时的信息在上面。
如下图:图3. 复杂报表这是一个复杂的报表,中间涉及到分项的记录,数据求平均,和一些操作信息的记录。
既有历史数据也有实时信息。
当然更复杂的报表需求也是有的,比如说涉及到一张报表上既有实时信息又有历史信息同时还涉及趋势视图、报警信息等。
用户自己可以灵活的定义报表的内容和样式。
比如下图:图4.用户定制报表样式内容上的需求就本质来讲是对客户关心信息的总结和整理。
内容的需求也就决定了报表的样式和可能采用的数据处理方式。
在WinCC中利用C-Script实现复杂生产报表

在 WiC 中 ,直接 访 问 数 据 库 的方 法 有 很 多 种 , 如使 用 nC A O/ E B、 用 WiC / E B 接 口 ( 以 访 问压 缩 归 档 D OL D 使 n C OL D 可 的数 据 )使 用 Mi o otAD / E D 访 问 非 压 缩 归 档 的 数 、 c sf r O OL B( 据) 、使 用 OP C、 使 用 C— P/ A I ODK 等 , 本 文 以 使 用 A O/ D
8 0
在 W i C 中利 用 C S r t 现 复 杂生 产报 表 n C — ci 实 p
在 Wi C中利用 C S r t n C — ci 实现复杂生产报表 p
Ge e a in o mpe t p r B s d o — r t i W iCC n r t fCo o lx Daa Re o t a e n C— Sc i n p n
高奇凌 王文祥 刘 鳞 ( 甘肃金桥水科技集团设计院电气与自 动化所, 甘肃 兰 ・ 703 ) 1 30 0 i .
摘 要
为 了解 决 WiC . 中不 能 直接 生成 复 杂 生 产报 表 及 查 询 打 印 的 问题 , 出 了利 用 C— cit 过 OL B 和 AD n C 62 提 Sr 通 p ED O 对 生 产 数 据在 A c s c e s归档 、 查询 及 打 印 的 方 法 。很 好 地 解 决 了污 水 厂 生 产 中对 复 杂报 表 的要 求 , 实现 了报 表 的 定 时 归档
及 后 台的 打 印 。
关 键 词 : n c ,— ci , L B A O,c esE c l 产报 表 , 水 厂 wi 6 C S rtO ED ,D A c s ,xe, C 2 p 生 污
WinCC中全局脚本VBS归档到Excel

WinCC中全局脚本VBS归档到Excel中用一个变量触发数据归档到Excel中,请高手看看我写的为何不能运行。
Sub procedure1If Item.OutputValue = "NewTag" ThenDim oVar,oBlendingVar,objExcelApp,oWorkBook,ExcelTableFull,oFileNameOn Error Resume NextExcelTableFull=0Set objExcelApp=CreateObject("Excel.Application")objExcelApp.Visible=FalseSet oWorkBook=objExcelApp.Workbooks.Open("D:\BKHL_HXBJ\模板\Receipt_Table.xls") Dim iBlankLineiBlankLine=oWorkBook.ActiveSheet.Columns(1).Find("0").Row'MsgBox("iBlankLine="&iBlankLine)If iBlankLine<504 ThenobjExcelApp.Cells(iBlankLine,1).Value=HMIRuntime.SmartTags("Recipe_Number").Value objExcelApp.Cells(iBlankLine,2).Value=HMIRuntime.SmartTags("BaseOil_Percent_1").Value objExcelApp.Cells(iBlankLine,3).Value=HMIRuntime.SmartTags("BaseOil_Percent_2").Value objExcelApp.Cells(iBlankLine,4).Value=HMIRuntime.SmartTags("BaseOil_Percent_3").Value objExcelApp.Cells(iBlankLine,5).Value=HMIRuntime.SmartTags("BaseOil_Percent_4").Value objExcelApp.Cells(iBlankLine,6).Value=HMIRuntime.SmartTags("BaseOil_Percent_5").Value objExcelApp.Cells(iBlankLine,7).Value=HMIRuntime.SmartTags("BaseOil_Percent_6").Value objExcelApp.Cells(iBlankLine,8).Value=HMIRuntime.SmartTags("BaseOil_Percent_7").Value objExcelApp.Cells(iBlankLine,9).Value=HMIRuntime.SmartTags("BaseOil_Percent_8").Value objExcelApp.Cells(iBlankLine,10).Value=HMIRuntime.SmartTags("Additive_Percent_1").Value objExcelApp.Cells(iBlankLine,11).V alue=HMIRuntime.SmartTags("Additive_Percent_2").Value objExcelApp.Cells(iBlankLine,12).Value=HMIRuntime.SmartTags("Additive_Percent_3").Value objExcelApp.Cells(iBlankLine,13).Value=HMIRuntime.SmartTags("Additive_Percent_4").Value objExcelApp.Cells(iBlankLine,14).Value=HMIRuntime.SmartTags("Additive_Percent_5").Value objExcelApp.Cells(iBlankLine,15).Value=HMIRuntime.SmartTags("Additive_Percent_6").Value objExcelApp.Cells(iBlankLine,16).Value=HMIRuntime.SmartTags("Additive_Percent_7").Value objExcelApp.Cells(iBlankLine,17).Value=HMIRuntime.SmartTags("Additive_Percent_8").ValueElse'MsgBox("Data Table Full,Copy to the backup file,continue ?")objExcelApp.displayalerts=FalseoFileName=CStr("D:\BKHL_HXBJ\模板\运行数据_"&Month(Date)&"月"&Day(Date)&"日"&"_"& Hour(Time)&"时"&Minute(Time)&"分"&".xls")oWorkBook.Saveas(oFileName)ExcelTableFull=1objExcelApp.displayalerts=TrueEnd IfoWorkBook.SaveobjExcelApp.Workbooks.CloseobjExcelApp.QuitSet objExcelApp=NothingSet oWorkBook=NothingIf ExcelTableFull=1 Then'MsgBox("Data Table Full, Clear the current data table, continus?")Set objExcelApp=CreateObject("Excel.Application")objExcelApp.Visible=FalseSet oWorkBook=objExcelApp.Workbooks.Open("D:\BKHL_HXBJ\模板\Receipt_Table_Templet.xls")objExcelApp.displayalerts=FalseoWorkBook.Saveas("D:\BKHL_HXBJ\模板\Receipt_Table.xls")objExcelApp.displayalerts=TrueoWorkBook.SaveobjExcelApp.Workbooks.CloseobjExcelApp.QuitSet objExcelApp=NothingSet oWorkBook=NothingEnd IfEnd IfEnd Sub本文转自亿万论坛:/a/a.asp?B=302&ID=1218853&q=1&r=140751。
基于C Script实现WinCC过程数据归档及报表查询功能

关 键 词 : ci , n C, C S r t C 日志 文件 , p Wi 查询 , 表 报
Ab ta t s rc
Th r t na i e tadio lW hCC e d i Tr n Co tolca n c s ec r d n r n otac es r o de pr e t en W i oc ss da a wh nCC i oti u i s n n r n tme. Be i s he sde t c lc i cy l o pr es da a s i td ol t e on ce f oc s t i l e by ompin pe i i W iCC. mi c lg i r od n n A me h d o d t sor e to f a a t ag an a e s s d cc s i de l ve— o d hrugh sn prce s at t pe t o u ig o s d a o s o ̄ te olc i c cl The h en h c l t e on y e. me h d f sl cr aes h C Sc it o a t by to it r y e t t e rp glbal c i on u ig sn C t d f n i l ar fW I edi an u ct or on i br y o NCC. en i h gl l c i .h oc s Th n t e oba a t t e pr es daa s e or d n t e 0 m f ea—t on t i r c de i h fr o r l i me l i nd t e te qu r d e  ̄ f c i i ral ed. og fe a h n h e an r po un t l y on s e i z Key wors: Scr tW iCC, g i , er , o ̄ d C i 。 n p l fequ y r o l ep
wincc如何制作报表

消息归档报表 2/2
100\ means that the last 100 messages will be printed.
测量值报表 (趋势) 1/4
测量值报表 (趋势) 2/4
测量值报表 (趋势) 3/4
Layout
Shortcut menu
测量值报表 (趋势) 4/4
-趋势颜色 -y轴的比例调节
PrtScreenPart (ObenX,ObenY,Breite,Hoehe+80); }
用户报表的打印预览
.emf 画面对象的拷屏
报表
使用行式打印机布局的消息序列报表
可用的矩阵打印机: -所有的HP打印机(Deskjet, Laserjet, Paintjet);所有的Canon BJC打印机;所有的Epson LQ打印机
报警记录
注: 在计算机启动列表里需要激活“Message Sequence Report“。
消息归档区域的拷屏
{ #pragma code("prtscrn.dll") BOOL PrtScreenPart (ULONG left, ULONG top, ULONG width, ULONG height); #pragma code()
ULONG ObenX,ObenY,Breite,Hoehe;
80
ObenX=GetLeft(lpszPictureName,"Control1"); ObenY=GetTop(lpszPictureName,"Control1"); Breite=GetWidth(lpszPictureName,"Control1"); Hoehe=GetHeight(lpszPictureName,"Control1");
21.Wincc控件制作报表以及导出EXCEL方法介绍

21.Wincc控件制作报表以及导出EXCEL⽅法介绍假设希望做这样⼀个报表界⾯,可以根据⽇期查询:希望导出的excel报表⽂件在C盘根⽬录,是这个样⼦:接下来我们⼀步步实现这个功能。
1. Wincc历史趋势的数据库表结构有点不好理解,我们新建⼀个数据库名字叫做Report,新建⼀张表,结构是这个样⼦:注意开放sa⽤户,设置sa⽤户有管理report数据库权限,使⽤sql登陆模式。
2. 我们每5秒往report表写⼊⼀条记录,在全局VBS脚本写⼊如下代码:Option ExplicitFunction action'添加纪录Dim T1,T2,P1,P2,F1,F2,L1,L2,A1,A2,S1,S2Dim ors,conn,con,ssql,ocomDim PCNamePCName=hmiruntime.Tags("@LocalMachineName").ReadT1=HMIRuntime.Tags("温度1").ReadT2=HMIRuntime.Tags("温度2").ReadP1=HMIRuntime.Tags("压⼒1").ReadP2=HMIRuntime.Tags("压⼒2").ReadF1=HMIRuntime.Tags("流量1").ReadF2=HMIRuntime.Tags("流量2").ReadL1=HMIRuntime.Tags("液位1").ReadL2=HMIRuntime.Tags("液位2").ReadA1=HMIRuntime.Tags("分析仪1").ReadA2=HMIRuntime.Tags("分析仪2").ReadS1=HMIRuntime.Tags("转速1").ReadS2=HMIRuntime.Tags("转速2").Readcon="Provider = SQLOLEDB.1;password = sa;user id = sa;Initial Catalog =Report;Data Source = " & PCName & "\WINCC" Set conn=CreateObject("ADODB.Connection")conn.ConnectionString=conconn.Cursorlocation=3conn.openssql="insert into Report(CurDateTime,T1,T2,P1,P2,F1,F2,L1,L2,A1,A2,S1,S2) values(Getdate()," _& T1 & "," & T2 & "," & P1 & "," & P2 & "," & F1 & "," & F2 & "," & L1 & "," & L2 & "," & A1 & "," & A2 & "," & S1 & "," & S2 & ")"Set ors=CreateObject("ADODB.RecordSet")Set ocom=CreateObject("mand")Set ocom.activeconnection=connmandType=1mandText=ssqlSet ors=ocom.ExecuteSet ors=Nothingconn.closeSet conn=NothingEnd Function脚本中的函数不做解释。
西门子wincc数据报表的实现方式

据 实 际测量 值实时 改变数 值轴 的范 围。 应 用在 线趋势 曲线 的前提 条件 使用VB S 汇编语言制 作脚本 程序 是Wi n c c k  ̄ 较高级 的一种 语言格 是, 用户需 要在变 量记 录里设 置需 要 归档 的变 量 内容 和 归档周期等 一 式 , 同时还可 以 自 定义脚 本触 发周期来 实现 数据 采集或 处理 。 在 凰面编 系列参数 。 辑 器中结合V B S 脚本 , 可 以使 画面做 到动态化 效果 。 是在 日 常编 写程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对报表程序及相应的监控画面设计结构如下图:
5
生产程序执行操作画面如下图:
6
通过 ADO(ActiveX Data Objects)数据库接口访问 WinCC SQL Anywhere 数据库并将查询信息 写入用户文件的代码如下: void GET_MESSAGE() { #include "apdefap.h" __object *cn, *rs; char cConnString[100]; char cSQLString[100]; char cTime[30], cRecord[60],TEXT[55][20]="",User_name[55][10]=""; FILE* stream; cn = __object_create("ADODB.Connection"); rs = __object_create("ADODB.Recordset"); sprintf(cConnString, "DSN=%s;UID=dba;PWD=sql", GetTagChar("dsnname")); cn->ConnectionString = cConnString; cn->Open; sprintf(cSQLString,"select * from MSArcShort where DateTime between '%19s' and '%19s'",GetTagChar("start_time_2"),GetTagChar("stop_time_2")); printf("%s",cSQLString); rs = cn->Execute(cSQLString); stream=fopen("D:\\SSPC_WinccData\\RT_message","w+"); while(!rs->eof) { strcpy(cTime, rs->Fields(0)); num = rs->Fields(2); strcpy(User_name[num], rs->Fields(8)); sprintf(cRecord, "%s %2d %20s %10s\n", cTime,num,TEXT[num],User_name[num]); fprintf( stream, "%s", cRecord ); rs->MoveNext; } fclose( stream ); rs->Close; cn->Close; __object_delete(rs); __object_delete(cn); }
4
四.
报表功能的实现 实现一个完整的工控报表系统,一般可分为两部分完成: 一、 数据处理单元,实现数据采集及相关工艺经济管理指标计算。完成数据处理常用
的方法有三种:API接口,一般讲对具体设备有较好的性能,没有统一的规范,需要对设备专 门开发接口程序,通用性差 ; ODBC接口,通用的HMI、SCADA等监控系统一般都支持ODBC规 范,在需要大数据量,多样化数据应用中,有很重要的应用,而且现在有不少基于ODBC开发 的第三方控件可供使用。 另外也可使用Microsoft的基于COM的OLE-DB接口,其优点是对数据 库的访问速度更快; OPC接口,PC的特点是有统一的接口规范,通用性好,若在OPC SERVER 端能实现历史数据服务,数据采集程序也能够获得各种历史信息,而且WinCC本身就是一个双 向的OPC应用程序。 二、 报表处理单元,实现报表格式生成,报表存储查询系统,报表打印等功能。目前 还没有通用的支持工控系统组态报表的工具。自行开发一般常用Excel电子表格完成数据处理 和报表格式制作,用开发软件如VB来控制Excel的应用,(一般是将Excel作为OLE Automation Server)能弥补其在工控应用中的不足,但是系统开发复杂,成本高。还可以利用现成的第三 方报表控件如CrystalReport等来完成报表处理。 在本项目中根据用户的要求,我们对报表部分做了充分的分析研究,用户报表对格式 要求严格,报表数据复杂,记录长度不确定,但是报表格式相对固定,这个控制系统只有一 台 PC670 做操作站,即要承担监控任务还要完成数据的存档及报表打印功能,如果在运行 WinCCRT 的同时还要在后台运行 Excel 软件,系统的负荷会比较大,容易造成系统响应时间增 大,性能下降,死机及中断程序。根据以上特点,我们对本次报表功能的开发采取了以 OLEDB 关系及非关系型数据库接口为基础的方式, 用 Global Script 编程通过 ADO(ActiveX Data Objects)接口访问 WinCC SOL Anywhere 数据库,利用 WinCC 的 C Script 的强大功能在 WinCC 的应用环境下编写数据采集处理单元,通过数据文件与外部的报表打印程序交换数据。 用 VC 直接编程开发具体的报表格式,通过数据文件,生成实时报表。好处是:首先报表程序只负 责报表打印,通过数据文件与 WinCC 应用系统交换数据,对系统的影响最小;其次报表系统 只在打印报表的时候由 WinCC 系统调用,打印完成后,自动退出,不常驻系统内,并且可以 实现用户的特殊要求。
1
华瑞制药有限公司厂房外观
华瑞制药有限公司工厂鸟瞰图
华瑞制药有限公司厂房内景
2
二.
系统介绍 华瑞制药旋转灭菌设备原使用的是西门子的 S5-110UPLC 控制系统,由于此型号的
PLC 是属于老型的 PLC,现备品困难,因此必需升级到 S7 系列。此次升级改造为 S73152DP,同时监控系统使用了一个 PC670 及 TP170B,组态软件为 Step7,ProTool V6.0 和 WinCC V5.1。 产品灭菌过程主要包括四个工艺流程,包括透明安瓿的灭菌流程,棕色安瓿的检测 流程,染色流程,及真空测试流程等。其灭菌工艺流程比较复杂,例如透明安瓿流程包括 三十多个步骤:三次分步真空 ---- 五步加热 ----灭菌 ---- 五步蒸馏水喷淋冷却 ---抽真空 ---- 染色 ----腔室加压 ----保持 ----腔室过压排水 ---- 排空 ---- 氯水清 洁 ---- 腔室鼓泡 ---- 腔室过压排水 ---- 排空 ---- 二次氯水清洁 ---- 鼓泡 ---过压排水 ---- 蒸馏水淋洗 ---- 加热 ---- 抽真空 ----加热 ---- 干燥 ---- 排空 --- 结束。 该旋转灭菌釜控制系统的主要功能有: • • • • • • • • • 灭菌釜真空检测自动控制 灭菌流程控制 对灭菌过程步骤的手动中断及跳步功能 灭菌工艺步骤的跳转条件可选择(时间,温度,压力,F0 值) 腔室温度、压力、灭菌时间的自动调节 根据实时生产温度与湿热灭菌参比温度计算灭菌过程的关键参数 F0 值 对系统的操作实行三级密码保护 历史数据及报警的保存及查看等 每批产品的相关报表
控制系统结构如下图:
3
TP170B
PC670
三.
ቤተ መጻሕፍቲ ባይዱ
监控系统及生产报表的要求 根据国家对药品生产管理的要求,药品的生产管理及出厂必须具备详细的可查询的
信息,这些信息的内容包括操作信息,生产批次信息,生产参数及配方信息,生产过程信 息及报警记录等。根据国家药品生产管理规定及 GMP 认证规则, 华瑞制药公司对升级的 S7 灭菌系统的监控和批次报表部分提出以下要求: • • • • • 所有操作数据和报警信息与过程数据的归档,历史数据的查看 人机界面给出一个接口,可以对所有生产程序步骤进行跳步、中断操作 人机界面给出对重要设备进行强制操作的接口 报表格式必须按照其他经过 GMP 认证的系统的报表格式来完成 报表中操作信息包括批号,程序模式,生产日期,该批次起始时间,操作者姓 名,批次终止时间;批次参数信息包括所选择的灭菌程序的设定参数;过程及 报警信息包括腔室温度及压力,LOAD1、LOAD2 和排出口的温度及实时 F0 计算 值,最大最小灭菌温度,最大最小 F0 计算值,操作员登陆信息,生产操作及 报警信息等 • • 批次参数信息存档 报表存档并可追溯(追溯打印报表要求和当班打印报表格式完全相同)
7
部分打印报表如下:
8
五.
结束语 本项目于 2004 年 7 月 8 日通过了系统 SAT,各项功能都达到了预期目标,用户对
监控部分的功能及报表表示满意,并且该项目已经进入投产运行阶段。 六. 开发体会 本系统仅使用 WinCC 来完成报表功能,这种方式对单机项目非常实用,不会过多地 占用系统资源,也不需要购买其它的 WinCC option 和应用软件,即能满足用户的功能需 求,又方便灵活。
一.
项目简介 无锡华瑞制药有限公司位于江苏省无锡市马山镇,该公司(SSPC)系中国和瑞典两国
第一家合资企业,也是目前中国制药行业最大的合资企业之一,公司注册资本 2790 万美元, 总投资额 4510 万美元。公司于 1982 年签订合资合同,1987 年开始经营生产,1999 年外方股 份转让给德国费森尤斯卡比公司(Fresenius Kabi)。华瑞公司作是中国第一家临床营养的专 业公司,目前主要生产外方股东德国费森尤斯卡比公司的专利产品—肠外营养和肠内营养系 列产品,年生产能力达到 1300 万瓶大输液、1590 万瓶/支小针和 600 万瓶肠内营养产品,是 国内唯一能够提供全套临床营养产品的厂家,也是亚太地区最大的肠外和肠内营养产品生产 基地。 华瑞公司是国内实施 GMP 的先行者和典范, 公司的生产工厂严格按照欧盟 GMP 的标准 设计和建造,拥有现代化的 GMP 硬件设备,其新型的通风系统、现代化的水系统、智能化的 配制系统、独特的灭菌系统、严密的药用条码系统等,均达到同行业国际先进水平。公司在 此硬件环境下严格实施制药领域标准最高、要求最严格的欧盟 GMP 标准,并顺利通过国家和 欧盟的 GMP 认证检查。公司是目前国内唯一获得欧盟 GMP 证书并获准向欧洲市场出口产品的 制药企业。