




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、组态软件、 C 语言基础中的语言WinCC语言由C脚本(C-script )和B脚本(VB-script )组成。WINCC中 C脚本:(1)C动作(在画布中编辑的程序代码)。int NEW_Add int c; c=a+b; return c;(2)全局脚本编辑器:项目函数、标准函数和内部函数。 项目函数:自定义本项目(保护性) 标准函数:编辑好供C动作调用 内部函数:(微软)自定义编辑函数在项目函数中 例如: #pragma()(int a; in b)程序使用的变量(书上 P31-35 )中的(Tag)变量-变量:C变量、WINC(变量SetTagBit( 参数 1,参数 2) 、G
2、etTagBit( 参数)SetTagWord(参数 1,参数 2)、GetTagWord参数)SetTagChar(参数 1,参数 2)、GetTagChar(参数) 变量名。参数 2:具体要求。例如参数 1 为液位,参数 2 为 aC变量:int(数值型)、char(字符型)、BOOL布尔型)-也就是二进制(为常用) WINC(变量:word(数值型)、char(字符型)、Bit(布尔型)(为常用) 常用变量如下: 布尔型: 数值型: 字符型: 参数 1 : 举例 1 二进制变量“启动”控制电机启停BOOL a;a= GetTagBit( “启动” ); if(a=0) SetTagBit
3、( “启动”, 1);举例 2二进制变量“启动”控制电机启停BOOL a;static int i=0;( 类似 int i; i=0;) a= GetTagBit( “启动” ); if(a=0) i+;加 static 启动一次 i=1 启动二次 i=2两者区别: 不加 static 启动一次 i=1 启动二次 i=1启动三次 i=1 启动四次 i=1 中的运算符启动三次 i=3启动四次 i=4中的常用语句三、变量组态WINCC中的变量分为:内部变量、外部变量和 C 动作(函数中的变量)1. 利用变量进行增减计数步骤 1:进行画面构建,需要两个按钮和一个输入输出域(属性调整 -)(变量、有
4、变化时、 输出)。新建内部变量,命名为“计数” ,属性为无符 16 位。如下图所示; 步骤2:在名字为“启动增加”的按钮中-属性-事件-鼠标左键C动作: unsigned short a;a=GetTagWord("计数");a+;SetTagWord("计数",a);步骤 3:在名字为“启动减少”的按钮中unsigned short a; a=GetTagWord("计数");a-; SetTagWord("计数",a);2. 利用变量进行增减计数(带有步长控制) ,可定义步长步骤 1:进行画面构建,需要两个按钮
5、和两个输入输出域(属性调整 -)(变量为计数、有变 化时、输出)步长对应的输入输出域 (属性调整 -)(变量为步长、 有变化时、输入)。 新建 2 个内部变量,命名为“计数”和“步长”步骤 2:在名字为“启动增加”的按钮中 属性unsigned short a;unsigned short b; a=GetTagWord("计数 1");b=GetTagWord("步长");a=a+b; SetTagWord("计数 1",a);步骤 3:在名字为“启动减少”的按钮中unsigned short a;unsigned short b;
6、 a=GetTagWord("计数 1"); b=GetTagWord("步长"); a=a-b;SetTagWord("计数 1",a);步骤 4:如果调整步长,可直接输入属性-事件-鼠标左键C动作:“止步属性3. 利用变量进行电机启动新建内部变量,命名为“起停” ,属性为无符 16 位。,属性为无符 16 位。如下图所示;事件-鼠标左键C动作:事件-鼠标左键C动作:在名字为“启停”的按钮中 BOOL a; a=GetTagWord("起停");if(a=0)SetTagWord("起停",1
7、);if(a=1)SetTagWord("起停",0);4. 利用变量进行 windows 窗口对象的修改属性-事件-鼠标左键C动作:四、画面组态5. 画面的切换方法 1:利用直接连接切换单个画面,即为在下图中“单击鼠标改变画面”的部分点击链接到所要去的画面。组态完毕后,点击按钮即可达到。方法 2:通过对象名称和画面名称的变量连接打开画面。在书上P101方法 3:通过内部函数打开画面。在按钮属性中事件中鼠标左键中 C动作利用软件内部函数输入程序如下:OpenPrevPicture (" 画面名称 ");6. 利用画面窗口显示画面方法: SetVisibl
8、e(" 画面名称 "," 对象名称 ",1 或 0);SetVisible 表示可见度;画面名称表示画面的名字,例如等;对象名称表示“画面窗口“画面窗口 n”在智能对象中;1或0表示可见或不可见。n”,步骤: 第一步: 新建三个画面,、。目的将、在中通过按钮的控制显示出来; 第二步: 分别在、中组态一个目标物;第三步: 在中组态两个按钮和两个画面窗口控件(名称为画面窗口1、画面窗口 2),在智能几何 宽度为 246,高度为 129;对象中找到“画面窗口” ,更改画面窗口属性(属性属性- 其它 - 边框改为是,显示改为否,画面名称添加或)第四步: 将、画面
9、的大小调整为和两个画面窗口一样大;第五步:进行按钮组态,在按钮属性中事件中鼠标左键中C动作中编写程序如下:按钮 1: SetVisible("","画面窗口1",1);SetVisible("","画面窗口2",0);按钮 2: SetVisible("","画面窗口1",0);SetVisible("","画面窗口2",1);时控显示7. 画面窗口属性 这个技巧功能是对上一个的继承,最终结果就是将三个画面循环显示。 步骤:第一步: 新
10、建四个画面,、。目的将、在中通过按钮的时间控制显示出来; (这里并 非按钮按下显示,系统运行自动显示) 第二步: 分别在、中组态一个目标物;第三步: 在中组态一个按钮和三个画面窗口控件(名称为画面窗口1、画面窗口 2、画面窗口 3),在智能对象中找到“画面窗口” ,更改画面窗口属性(属性 几何 宽度为 246, 高度为 129;属性 其它 边框改为是,显示改为否,画面名称添加或或) ; 第四步: 将、画面的大小调整为和三个画面窗口一样大;第五步:进行按钮组态,在按钮属性中几何中宽度中(假如宽度为70) C动作中编写程序如下:static int a=0;a+;if(a=1)SetVisible
11、("","画面窗口3",1);SetVisible("","画面窗口4",0);SetVisible(""," if(a=2)SetVisible("","画面窗口5",0);画面窗口3",0);SetVisible("","画面窗口4",1);SetVisible(""," if(a=3)SetVisible("","画面窗口5&quo
12、t;,0);画面窗口3",0);SetVisible("","画面窗口4",0);SetVisible("","画面窗口5",1);a=0;return 70;触发器调整为1S中,即为间隔1S闪烁显示。8. 动画旋转组态(例如风扇转动)这个技巧是为了组态一个旋转的动画,例如工业上的搅拌机等。举例如下:步骤 1:组态基本画面,可以在显示库中寻找,也可以自己绘制。显示库:从显示库中调用,若使用,首先将元件导出(注意保存) ,然后将元件删掉,然后再导入(插入)这个元件,便可以进行调整(折开、组装、编组)注意,编
13、组时必 须至少两个一组。自己绘制:例如矩形、圆等(注意属性的调整)全选编组。例如编为 4个组:组 1、组 2、组3、组4步骤 2:程序的编写 static int a=0;a+;if(a=1)SetVisible("","组 1",1);SetVisible("","组 2",0);SetVisible("","组 3",1);SetVisible("","组 4",0);if(a=2)SetVisible("",&
14、quot;组 1",0);SetVisible("","组 2",1);SetVisible("","组 3",0);SetVisible("","组 4",1);a=0;return 800;在画布属性 - 几何 - 宽度(如果此时宽度为 800)-C 动作:步骤 3:触发器的调整,标准周期, 250MS9. 动态化颜色改变颜色改变是最基本的动态化的技巧, 就是动态对话框的基本功能, 利用颜色的变化来完成一个部件的动作或结束。例如,画布属性 - 颜色 动态对话框(
15、事件名称也就是触发 器的调整、表达式的填充或者变量、选择表达式结果的展现形式(布尔型或者其它调整颜色)。10. 动态化闪烁组态(元件闪烁)此技巧主要是针对于元件库中的元件来讲。例如,随便调出一个元件(属性控件属性 闪烁样式(4 种选择,包括不闪烁 -0 、不可见-1 、阴影-2 、实心-3) )。点击后面的灯泡标志,选择动态对话框闪烁颜色布尔型等。此技巧元件可单独作用,亦可由按钮控制。11. 动态化动态填充组态动态填充组态就是控制元件的动态填充。例如,新建一个内部变量(命名为level 、无符号 16 位、上限 100、下限 0、起始值 0)、调出一个元件或绘制一个矩形(属性动态填充改为“是”
16、、填充量改为“ 0”、 点击填充量后面的灯泡标志,直接连接变量level )。在矩形 - 几何- 宽度(假设宽度为 100)C 动作:(注意触发器调整 250 毫秒)1)填充增加static int a=0;if(a>=100)a=0;SetTagWord("level",a);a+;return 100;2)填充减少static int a=100;if(a=100)a=100;SetTagWord("level",a);return 100;3)填充增减结合(先增加、再减少)static int a=0;static int b=0;( 方向控
17、制 )if(b=0)if(a>=100) b=1;a+;if(b=1)if(a<=0) b=0;SetTagWord("level",a);return 100;12. 动态化对象的移动对象的移动就是控制元件在画布上水平左右或者垂直上下的移动, 亦或沿对角线移动, 也可 以综合性的各方向的移动。以小车移动为例进行步骤分析如下: 步骤一:选中元件-属性-几何(选择位置X、位置Y)-灯泡标志(C动作):特别注意:计算移动的距离范围,选出一个起点和一个终点(如果双向起点和终点 和互换的)。计算两点之间的距离。如果水平移动,计算 X 之间的距离;如果垂直 移动,计算丫之
18、间的距离。例如,起点X的坐标为500,终点X的坐标为20,那么 距离为 480。(水平移动就是不断增加或者不断减少 x)步骤二:下面以水平移动为例,进行 C动作分析:1)水平左移(不断减少 x)static int a=500;if(a<=0) a=480;else a=a-4;( 每次移动的距离,可以自动调整return 20+a;2)水平右移(不断增加 x)static int a=0;if(a>=500) a=0;else a=a+4; ( 每次移动的距离,可以自动调整return 20+a;3)水平左右移动(双向移动)static int a=500;static int
19、b=0; (方向控制 )if(b=0) if(a<=0)b=1;( 调整方向 ) a=a-4; ( 每次移动的距离,可以自动调整if(b=1) if(a>=500) b=0; ( 调整方向 )a=a+4; ( 每次移动的距离,可以自动调整 )SetTagWord("level",a);return 20+a;步骤三: 触发器调整 250 毫秒注意: 位置 X水平(左右)移动位置 Y垂直(上下)移动高度放大或者缩小(上下)宽度拉伸或缩短(左右)13. 动态化复杂动画设计复杂动画设计是动态化画面的主要特色,也是工业画面组态主要部分。 本技巧的展现以混合液的控制系统为
20、例进行论述。1) 管道中液体流动步骤一: 在元件库中调用管道。管道在横放管道)、2180(纵放管道)中寻找。plantElemer pipes 2270(弯管道 ) 、2206画出液体流动的三种状态,第一种状态为原始状态,就是没有任何液体流动;第二种和第三中为液体流动的两种不同状态。三种状态画好并导出到桌面,画好一个就导出一个。 分别命名( 0、1、2)(3 次)步骤二: 新建一个变量,命名为“进水” ,为无符号 16 位。步骤三: 在智能对象中状态显示组态对话框(变量为“进水” 、有变化时、增加三页( 0、 1、2)将三个画面状态拖入 0、1、2 下面,相对应)。步骤四: 在状态显示控件几何
21、 宽度(假设宽度为 100)-C 动作:static int a=0;11-16-20132013-11-16期与时间的设置两个时间求差值此技巧是对上一个技巧的承接,用于实现在线时长显示的功能。注意:字符不能相加减;显示格式(字符显示) :时间 1:09:45: 30 时间 2 09 :45:45 时长: 00:00: 15。画面布局如图所示;步骤一: 新建内部变量: shijian1 和 shijian2 和 shijian3 (格式为文本 8 位字符集),新 建对应的输入输出域(变量( shijian1 和 shijian2 和 shijian3 )、有变化时、输出) 。注 意:输入 /
22、输出域属性调整(输出格式:字符串)步骤二: 程序 时间 1 程序:在时间 1 对应的输入输出域中 - 属性- 事件 -鼠标左键 C动作:char a20;char*p;p=GetTagChar("time");strcpy(a,p);SetTagChar("shijian1",a);时间 2 程序:在时间 2 对应的输入输出域中 - 属性- 事件 -鼠标左键 C动作:char a20;char*p;p=GetTagChar("time");strcpy(a,p);SetTagChar("shijian2",a);时
23、间差程序:在时间差对应的输入输出域中 - 属性- 事件 -鼠标左键 C动作:第一部分:定义变量char a20,b20;char*p;char aa10,bb10,cc10;int i;int val1,val2,val3;int val4,val5,val6;int val7,val8,val9;long sum1,sum2,temp;、采集时间第二部分:将 shijian1 由字符转换为数值p=GetTagChar("shijian1");strcpy(a,p);for(i=0;i<2;i+)aai= ai;、小时bbi= ai+3;cc i= ai+6;aa2=
24、'0'bb2='0'cc 2='0'val1=atoi(aa);、分钟、秒、字符转数值val2=atoi(bb);val3=atoi(cc);第三部分:将 shijian2 由字符转换为数值(同上)p=GetTagChar("shijian2");strcpy(a,p);for(i=0;i<2;i+)aai= ai;bbi= ai+3;cc i= ai+6;aa2='0'bb2='0'cc 2='0'val4=atoi(aa);val5=atoi(bb);val6=atoi
25、(cc);第四部分:求差值、计算时间 1 共多少秒、计算时间 2 共多少秒sum1=val1*3600+val2*60+val3; 、sum2=val4*3600+val5*60+val6;temp=sum2-sum1、; 、秒值相减temp=abs(temp); 、取绝对值分为三(仍为数值)第五部分:将得出数值 temp 转换为(时、分、秒)val7=temp/3600; 、数值除 3600 取整为小时val8=(temp%3600)/60; 、余下数值除 60 取整为分钟val9=temp%60;、余下数值除 60 取余为秒值第六部分:将各数值转换为字符( 0的 ASCII 码为 48)b
26、0=val7/10+48; 、十位b1=val7%10+48; 、个位b2=':'、冒号b3=val8/10+48;b4=val8%10+48;b5=':'b6=val9/10+48;b7=val9%10+48;b8='0'、字符串结束标志SetTagChar("shijian3",b);、输出结果项目总图14. 全局脚本(了解)将事先编好的程序在全局脚本中编辑成函数形式(项目函数)在 C 动作中直接调用。以可以保护函数。举例说明:以上一技巧中的时间差函数为例;步骤:全局脚本 C-Editor 项目函数新建在特定的形式中输入要
27、编的程序,如下所示:#pragma option(mbcs)void此为函数名字可以自己起名)输入要编写的程序最后的程序如下:#pragma option(mbcs)void New_Function()char a20,b20;char*p;char aa10,bb10,cc10;int i;int val1,val2,val3;int val4,val5,val6;int val7,val8,val9;long sum1,sum2,temp;p=GetTagChar("shijian1");strcpy(a,p);for(i=0;i<2;i+)aai= ai;bb
28、i= ai+3;cc i= ai+6;aa2='0'bb2='0'cc 2='0'val1=atoi(aa);val2=atoi(bb);val3=atoi(cc);p=GetTagChar("shijian2");strcpy(a,p);for(i=0;i<2;i+)aai= ai;bbi= ai+3;cc i= ai+6;aa2='0'bb2='0'cc 2='0'val4=atoi(aa);val5=atoi(bb);val6=atoi(cc);sum1=val1*3
29、600+val2*60+val3;sum2=val4*3600+val5*60+val6;temp=sum2-sum1;temp=abs(temp);val7=temp/3600;val8=(temp%3600)/60;val9=temp%60;b0=val7/10+48;b1=val7%10+48;b2=':'b3=val8/10+48;b4=val8%10+48;b5=':'b6=val9/10+48;b7=val9%10+48;b8='0'SetTagChar("shijian3",b);加密:菜单栏中 编辑 信息 (创
30、建者:冯晨曦;口令: 123456),以后每次输入都得登录正确的口令才可以登录; 加密后,在C动作中只显示函数名,不显示函数内容15.关于文件的操作(对 WINCC勺扩展)1)文件指针格式 *txt*dat( 打不开,存放登录过的密码 )2)文件操作 打开文件 操作文件(复杂) 关闭文件3)打开文件 (首先定义文件指针)FILE*fp; fp=fopen( “”, “r”);w打开文件方式:r 表示只读:如文件不存在或者路径错误,返回NULL(空指针)表示写入: 如文件不存在或者路径错误, 则新建用于清空某个文件。表示写:为追加,写时不会删除原有文件。 以 r 、a 使用最多 。4)关闭文件F
31、close(fp);f表示 file , 中文为“文件”;5)操作文件写数据 fputs( 字符,文件指针 ) ;字符为常量或者数组 举例: fputs(china , fp);char a20;strcpy(a20, fp);读数据 fgets(, 数组名 ,n, 文件指针 );作用是从文件中读取 n-1 个字符放入数组中;16. 项目班级数据录入借助本项目巩固文件操作技巧,本项目就是对一个班级信息的记录(姓名、班级、学号)步骤一:新建三个内部变量:分别命名为“name”、“ class ”、“number”, 并建立相应的输入输出域,注意:输入 / 输出域属性调整(输出格式:字符串) ,如
32、下图所示: 步骤二:新建两个按钮,分别命名为“写入一次信息” 、“写入信息”。任务一:在按钮“写入一次信息”中 - 属性 事件 鼠标左键 C 动作:FILE*fp; fp=fopen("E:","a"); fputs(" 冯晨曦 ",fp); fputs("1001 自动化 ",fp); fputs("rn",fp);fclose(fp);任务二:在按钮“写入信息”中 - 属性 事件 鼠标左键 C 动作:FILE*fp; 、文件指针 char a20; char b20; char c20; c
33、har*p; 、字符指针对文件的综合处理(未完)本项目是对文件处理的综合运用, 是对组态系统人员登录的统计和记录。 总体布局如下图所示;项目步骤如下:步骤一:完成下图图形的构建和脚本程序的编写,方法如上1) 新建三个内部变量,分别命名“ name”“ class ”“number”, 分别连接相应的输入输出域(组态对话框:该变量、有变化时、类型为 I/O 域)。注意:输入 / 输出域属性调整(输出格式:字符串) 。2)在名字为“写入文件”的按钮中 - 属性- 事件 C 动作:FILE*fp;char a20;char b20;char c20;char*p;int i;p=GetTagChar
34、("name"); strcpy(a,p); p=GetTagChar("class"); strcpy(b,p); p=GetTagChar("number"); strcpy(c,p);/if(strlen(a)=4) 、 可/strcat(a," ");/if(strlen(a)=6)/strcat(a," ");/if(strlen(a)=8)/strcpy(a);for(i=strlen(a);i<8;i+);即可、蓝色和红色部分功能一致, 选用一个即、蓝色和红色部分功能一致,选
35、用一个strcat(a," ");fp=fopen("E:","a");fputs(a,fp);fputs(b,fp);fputs(c,fp);fputs("rn",fp); fclose(fp);步骤二:完成下图图形的构建和属性的调整;1)智能对象控件(选择 ListView control sp6) 拉大控件双击(显示属性)在 General( 常规 ) 中修改 View (选择3-lvwreport )( 报表输出 ) ;在 Colum Header( 列标题 ) (点击 insert Colum( 增加一列
36、 )index 为列号( text: 姓名; Width( 列宽 ) :80;)二次点击 insert Colum( 增加一列 )index 为列号( text: 班级;Width(列宽):80;) -三次点击 insert Colum(增加一列)index为列号( text: 学号; Width( 列宽): 80; ;点击应用击确定。2)选中属性- 控制属性GridLines改“是”为“否”。步骤三:完成下图图形的构建和脚本程序的编写;1)新建 4 个按钮和 1 个输入输出域,注意:输入 / 输出域属性调整(输出格式:字符串)。如上图所示;新建内部变量:命名“ search ”,文本 8 位
37、字符集;2) 在按钮名为“显示数据”属性 事件 鼠标左键 C动作:#define GetObject GetObject_object*pdl=NULL; 、_object*pic=NULL; 、指向当前运行系统(NULL为空值、初始化)、指向当前系统激活画面_object*obj=NULL; 、指向画面中的某个对象_object*item=NULL; 、对象中对行的操作int i;char aa10;char a20,b20,c20;FILE*fp;fp=fopen("E:","r");if(fp=NULL) 、如果打不开,指向下面判断路径是否正确HW
38、ND hwnd=NULL ;、指针hwnd=FindWindow(NULL,"WinCC -运行系统 - ");、指针MessageBox(hwnd," 文件打开出错","警告",MB_OK|MB_ICONSTOP、系统函数弹出对话框(可能是XP系统中的。WIN7不弹出)return ;、返回空指针打开文件:pdl=_object_create("PDLRuntime");、指向当前运行系统中的激活画面pic=pdl->GetPicture(" ");obj=pic->GetObje
39、ct(" 控件 1");/d=GetTagChar("sousuo");/strcpy(dd,d);/obj->ListItems->Clear();、调用函数为对象清零obj->view=3; 、对控件 1 操作所有的行rewind(fp); 、对文件操作,光标定位函数for(i=1; feof(fp)=0; ) 、蓝色部分为文件尾判断函数( 0:光标不到尾; 1 光 标到尾)、只要光标不到尾,此段程序始终循环if(feof(fp)!=0)、如果不等于 0,说明光标到尾,执行跳出fgets(a,9,fp);、读取 8 个字符放入 a
40、中a9='0'、结束符break;fgets(b,11,fp);、读取 10 个字符放入 b 中fgets(c,11,fp);、读取 10 个字符放入 c 中b11='0'、结束符c11='0'、结束符fgets(aa,3,fp);、八读取3个字符放入aa中,rn回车换行是两个字符;目的是跳过第一行,去读第二行item=obj->ListItems->Add();obj->ListItems->Item(i)->Text=a;、八将a写入控件第一行第一列obj->ListItems->Item(i)-&g
41、t;ListSubItems->Add(1,"First",b);、增加一列obj->ListItems->Item(i)->ListSubItems->Add(2,"Second",c);、增加一列i+;、进入下一行,光标定位到第二行fclose(fp);、关闭文件_object_delete(item);、最后四行为销毁指针,否则占用内存,从里往外销毁;object_delete(obj);object_delete(pic);object_delete(pdl);3)在按钮名为“搜索”中属性 事件 鼠标左键 C动作:#
42、define GetObject GetObject_object *pdl=NULL;object *pic=NULL;object *obj=NULL;object *item=NULL;int i;char *d;char aa10;char 旦 20L220L£20Lddr20Leer20kF一LE *fp-fpHfopenvEWTXif(fpHHNULL)ND hwndHNULL.hwndHFindwindow(NULLwinccild '=)八MessageBOX(hwncr 洱丰肯斗圧轟=-=嚨申MBIOK-MBcONSTOP)-refumPd-Hobjecflceafe(=PDLRUnfime=)-picHpd丁 VGefpicfurecpobjHpevGefobjec三 K丰ss三三三三三三三三三三三三三三三三三三=duGefr agcha(=seach=)八 >
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年微生物学与免疫学考试试题及答案
- Tesmilifene-fumarate-Standard-DPPE-fumarate-Standard-生命科学试剂-MCE
- mCherry-mRNA-N1-Me-Pseudo-UTP-生命科学试剂-MCE
- Halymecin-C-生命科学试剂-MCE
- 2025年青少年心理健康教育师考试试题及答案
- 2025年人工智能应用专业毕业生能力测试试题及答案
- 2025年社会心理学应用与研究方法考试试题及答案
- 2025年经济法学专业考试相关试题及答案
- 2025年建筑设计专业研究生入学考试试卷及答案
- 2025年电子技术基础考试试题及答案
- (中考试题)2024年浙江省绍兴市中考数学真题试卷解析版
- 物联网技术概论智慧树知到期末考试答案章节答案2024年甘肃财贸职业学院
- 中国历史地理智慧树知到期末考试答案章节答案2024年北京大学
- 新中式住宅设计理念
- 2024年四川省凉山彝族自治州西昌市六年级语文小升初摸底考试含答案
- 云南白药的盈利能力分析基于杜邦分析法
- 有关分手的研究报告
- JGJT405-2017 预应力混凝土异型预制桩技术规程
- JJF1059.1测量不确定度评定培训讲演稿
- 电竞酒店管理制度
- 方案伪装防护要求
评论
0/150
提交评论