大肠菌群是指一群能发酵乳糖、产酸(培养基原来的颜色是红色的,如果产酸会变成**)、产气、需氧和兼性厌氧的革兰氏阴性无芽胞杆菌。食品检出大肠菌群,则表示该食品曾受粪便污染。结果报告为每100ml(g)样品中大肠菌群的最近似数(MPN)
设备和材料:
1 温箱:36±1度
2 冰箱:0-4度
3 恒温水浴:445±05度
4 天平
5 显微镜
6 均质器或乳苯
7 平皿:直径为90mm
8 试管
9 吸管
10 广口瓶或三角烧瓶:容量为500ml
11 玻璃珠:直径为5mm左右
12 酒精灯
13 试管架
培养基和试剂:
1 乳糖胆盐发酵管
2 伊红美蓝琼脂平板
3 乳糖发酵管
4 EC肉汤
5 磷酸盐缓冲稀释液
6 生理盐水
7 革兰氏染色液
*** 作步骤:
71)检样稀释
711 以无菌 *** 作将检样25ml(或g)放于含有225ml灭菌生理盐水或其他稀释玻璃瓶内(瓶内予置适当数量的玻璃珠)或灭菌乳苯内,经充分振摇或研磨作成1:10的均匀稀释液。固体检样最好用均质器,以8000-10000r/min 的速度处理min,作成1:10的均匀稀释液。
712 用1ml灭菌吸管吸取1:10稀释液1ml,注入含有9ml灭菌生理盐水或其他稀释液的试管内,振摇试管混均,作成1:100的稀释液
713 另取1ml灭菌吸管,按上条 *** 作依次做成10倍递增稀释液,每递增稀释一次,换用1支1ml灭菌吸管。
714 根据食品卫生标准要求或对检样污染情况的估计,选择三个稀释度,每个稀释度接种3管。
72 乳糖发酵试验
将待检样品接种于乳糖胆盐发酵管内,接种量在1ml以上者,用双料乳糖胆盐发酵管。每一稀释度接种3管,置36±1度温箱内,培养24±2小时,如所有乳糖胆盐发酵管都不产气,则可报告为大肠菌群阴性,如有产气者,则按下列程序进行。
73 分离培养
将产气的发酵管分别转种在伊红美蓝琼脂平板上,置36±1度温箱内,培养18-24小时,然后取出,观察菌落形态,并做革兰色染色和验实试验。
74 证实试验
在上述平板上,挑取可疑的大肠菌群1-2个进行革兰氏染色,同时接种乳糖发酵管,置36±1度温箱内培养24±2小时,观察产气情况凡乳糖管产气、革兰氏染色为阴性的无蚜苞杆菌,即可报告为大肠菌群阳性。
75 报告
根据证实为大肠菌群阳性的管数,查MPN检索表,报告每10ml(g)大肠菌群的mpn值。
8 粪大肠菌群
81用接种环将所有产气的乳糖胆盐发酵管培养物(见72条)转种于EC肉汤管内,置445±02度水浴箱内(水浴箱内的水面应高于EC肉汤液面),培养24±2小时,经培养后,如所有EC肉汤管均不产气,则可报告为阴性;如有产气者,则将所有产气的EC肉汤分别转种于伊红美蓝琼脂平板上,置36±1度培养18-24小时,凡平板上有典型菌落者,则证实为粪大肠菌群阳性。
82 结果报告
根据证实为粪大肠菌群的阳性管数,查MPN检索表,报告每100ml(g)粪大肠菌群的MPN值
1、CoDeSys IDE。
即CoDeSys集成开发环境,符合IEC61131编程规范,安装于PC机上,运行于Windows或者Linux下。由最终应用用户所使用的开发工具。
2、CoDeSys Runtime。
即硬件平台系统。需要设备制造商与3S公司共同完成,3S公司需要评估硬件开发商所设计的硬件系统,并为其定制CoDeSys Runtime框架,客户需要为此向3S付费。然后硬件及系统开发商需要根据本系统的外围输入输入等配置,编写相应的驱动,并以库或者PLC Configure接口的形式提供给CoDeSys ID开发环境调用。实际上就是形成一套Target安装包。此外,CodeSys还会对每个使用其CoDeSys Runtime的设备贴标,设备供应商需要为每个3S标牌付费,作为其知识产权的一部分。
3、最终用户(应用开发商)可以下载通用的CoDeSys IDE。
里面提供基本的IEC61131编程环境,但是对于一个具体的硬件PLC或者HMI,需要安装与该硬件相对应的Targets包。这个 Targets包的入口文件是tnf文件,有其来指定:
1、targets(tar)文件,对应 CoDeSys IDE的Target Setting项
2、PlcConf文件夹下的cfg文件,对应CoDeSys IDE的PLC Configuration项。其安装路径由InstallTarget组件程序的Installation选项指定。反映在CoDeSys IDE上就是:Project\Options\Directories\Target\Configuration files: "\\PlcConf\"。
3、Lib文件夹下的诸lib文件,提供底层的CoDeSys Runtime的驱动接口。对应CoDeSys IDE的Library Manager。其安装路径由InstallTarget组件程序的Installation选项指定。反映在CoDeSys IDE上就是:Project\Options\Directories\Target\Libraries: "\\Libs\"。
上图,就是安装target的过程,也就是每个OEM厂家安装自己硬件的过程。
CoDeSys底层运行原理
Codesys runtime是建立在OS上的,常见的OS有wince,windows,linux,vxworks。构建在OS的优势就在于系统的扩展性更强,PC的更多功能都可以在PLC上实现。
control task被 *** 作系统每隔一段时间(典型是1ms)调用一次。
IEC task被内建的看门狗监控,监视PLC的实际工作周期是否超出预定时间,如果超出则IEC task任务停止,向系统报告错误。
说到这里讲讲PLCOPEN的IEC 61131-3标准(这个IEC具体名字,网上现查的,方博士掌握的很好)。IEC 61131-3多任务 *** 作系统,也没查到具体如何实现,自己之前做过嵌入式开发,了解OS以及RTOS,自认为和RTOS类似,热情高的朋友可以网上看看RTOS,重点是RTOS的优点是什么?欧洲的产品都很注重概念,概念理解了,就可以让你自由发挥。这里就多插一句,日系PLC在做大型项目时,还是和低端PLC一样,编程习惯类似汇编,编程上想要实现框架的概念非常难,因此在欧洲比较难推广。现在日系也在改进,加入了ST编程,使用了功能块,也算是日本人的妥协吧。
这里有几个概念:
优先级,数值越小优先级越高,根据任务的实时性,设定优先级
任务类型
循环:周期性执行任务
自由运行:只要启动程序就处理任务,CPU空闲就运行该task。
Event触发型:触发位的上升沿调用程序。外部事件触发功能,未定制的厂家此选项不能使用
看门狗(早期单片机上的一个概念,纺织程序进入死循环,提出了定时喂狗的概念,其本质就是一个减法定时器)
说说MCU如何使用watchdog吧。
while(1)
{
//用户自己写的程序
Watchdog = 10ms; //watchdog timer后台按照tick做减法,如果timer为0,就触发一个硬件中断,告诉用户程序在单位时间内没执行完,检查错误。正常则每次喂狗,设置timer为10ms
}
CoDeSys的watchdog定时监视PLC的实际工作周期是否超出预定时间,避免PLC在执行程序的过程中进入死循环,或者PLC执行非预定程序造成系统瘫痪。当任务超时,任务复位,进入初始状态,继续执行。
对比一下AB control logix的任务实现
control logix项目分为任务(task),程序(program)和例程(routine)。
任务(task):每个control logix控制器最多32个任务,仅有一个continuous任务,其余为Periodic或者event任务。
任务命名包括任务功能,优先级和执行周期
任务的三种类型:
1 连续型任务,指的是周而复始连续执行的任务,一个项目只允许定义1个,亦可以不定义,等同于codesys中的PLC_PRG(POU)。
2 周期型任务,定时中断执行的逻辑程序,需定义周期时间,设定优先级别,最多可以定义31个
3 事件触发型任务,事件触发引起的任务调度,事件触发可以是外部输入点引起(如同PLC5/SLC),也可以由consumed tag引起或者直接指令调用引起,还可以由运动控制状态引起,需要设定优先级别,最多定义31个。
Control logix中的producer/consumer的概念非常好,体现在其组网能力上。比如某一个模块是消息的生产者,产生消息存放在消息块中,其他需要此变量的功能块,定义一个消息consumer即可。有兴趣的朋友可以自己看看相关资料。
CoDeSys的编程工具
IL 、ST、 FBD 、LD、 CFC、 SFC六种语言,我个人比较钟爱ST,CFC。
CodesysV23还是强调过程编程,到了V35则强调面向对象,C 的影子更多了。
言归正传,应用者也不需要关心那么多技巧,能实现功能,并且代码具有可维护性就是一个合格的工程师。
1高级语言中的struct,union。
Stuct在西门子SCL语言中被称为UDT(user defined type),AB RSLogix 5000中也被称为UDT
TYPE TRAFFIC :
(RED, YELLOW:=1, GREEN:=10);
END_TYPE
TYPE STRUCT1 :
STRUCT
P1:INT;
P2:INT;
P3:INT;
END_STRUCT
END_TYPE
2指针,c,c 中的顶级利器,在codesys中也可以使用
Example in ST:
pt:POINTER TO INT;
var_int1:INT;
var_int2:INT;
pt := ADR(var_int1);
var_int2:=pt^;
3FC,FB的概念
上述是CoDeSys说明书的例程,不知道看出有什么不同?
FC在程序中直接调用即可,FB则需要先定义实例(instance),Instance: FUB。这里的Instance就是C 中的对象实例。怎么理解这个实例呢?上个最傻的高级语言的例子吧。
class Student
{
int age;
int sex;
int grade;
void DoWork(void);
};
Student tony, jany;
tonyage = 10;
tonysex = male;
tonygrade = 3;
tonyDoWork();
janyage = 9;
janysex = female;
janygrade = 3;
janyDoWork();
这里的DoWork就类似FB,可以看到FB带有自己独立的数据块,比如例中的age,sex,grade。
对比西门子S300/S400的FC、FB
1FC不具备自己的存储区,FB有自己的存储区-背景DB。
2FC和FB都有自己的TEMP变量,存储在系统的本地stack上。当FC和FB调用完毕,TEMP变量会释放。
3FB有静态变量,FC没有。静态变量在背景DB中,FB调用完毕,静态变量仍然有效。
西门子300中,DB分为背景DB和共享DB,背景DB和FB相关联。
景DB和共享DB没有本质区别,它们的数据都可以被任何一个DB,FC或者FB读写。它们的区别在于使用目的:背景DB为FB提供数据,其数据格式和FB变量声明一致;共享DB目的为用户程序提供一个可保存的数据区。
如果对C比较熟悉,可以这样理解:FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。每次调用FC的I/O区域必须要自己每次手动输入,而FB就不要,省去不少麻烦,如果在上位机控制直接输入DB控制地址就可!
看到这里,大家再思索一下,德系PLC的编程思想虽然实现形式不同,但强调的概念都一样,一定要理解这些概念,才能熟练应用。
4PLC_PRG
PLC_PRG是一个预定义的POU(program of unit),每个工程必须包含这个特定的程序,这个POU在每个cycle中调用一次。其本质就是一个freewheeling程序。
如果使用了多任务,可以不包含PLC_PRG,按照任务配置表执行特定程序。
5lib库的使用
Lib的使用体现了codesys高级语言的特性,支持mathlib,stringlib,canopenlib,可以使用自定义的lib
用户自己实现的lib库,包含两种:Internal lib,External lib,有什么区别呢?
内部是完全利用CoDeSys实现的自定义lib库。外部库则需要利用相关的编译链去编译,更多被底层开发者所采用,可以直接利用OS底层的API进行编程,性能效率更高。
6好用的case语句
CASE INT1 OF
1, 5:
BOOL1 := TRUE;
BOOL3 := FALSE;
2:
BOOL2 := FALSE;
BOOL3 := TRUE;
1020:
BOOL1 := TRUE;
BOOL3:= TRUE;
ELSE
BOOL1 := NOT BOOL1;
BOOL2 := BOOL1 OR BOOL2;
END_CASE;
case语句是我比较喜欢的功能,可以实现手动自动,可以实现多工位。
K5 PLC没有日系的STL,也没有西门子的SCR指令,可以通过其他方式实现类case方法,大家也可以思考下。
更多CoDeSys的使用细节可参考CoDeSys说明书“CoDeSys_V23_Epdf”
EPEC是芬兰一家公司推出的特定PLC,价格比较贵,防护等级高,适合于恶劣的工作环境。
现在,矩形U80系列完全可以替代他了,铝合金防水外壳,防护等级IP67,价格便宜不少。
防水防热,抗干扰抗振动抗冲击,工作温度范围-40℃—80℃,湿度5%—95%RH。
编程使用标准的梯形图,简单易懂,带2个232、2个485、2个CAN口、一个以太网口。
EPEC在线申请周期大概在2周左右提交成功之后有一个APPLICATION SN保存下来以便定期查询申请状态
>
以上就是关于大肠菌群检验程序+报告全部的内容,包括:大肠菌群检验程序+报告、想把epec里的程序复制出来,用coDesys程序怎么写大神、EPEC和PLC有什么区别,请专家讲解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)