CN100395763C - 猪个体标识的一种控制方法 - Google Patents

猪个体标识的一种控制方法 Download PDF

Info

Publication number
CN100395763C
CN100395763C CNB2005100401050A CN200510040105A CN100395763C CN 100395763 C CN100395763 C CN 100395763C CN B2005100401050 A CNB2005100401050 A CN B2005100401050A CN 200510040105 A CN200510040105 A CN 200510040105A CN 100395763 C CN100395763 C CN 100395763C
Authority
CN
China
Prior art keywords
byval
text
dim
pig
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100401050A
Other languages
English (en)
Other versions
CN1716285A (zh
Inventor
陆昌华
谢菊芳
王立方
胡肄农
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Academy of Agricultural Sciences
Original Assignee
Jiangsu Academy of Agricultural Sciences
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Academy of Agricultural Sciences filed Critical Jiangsu Academy of Agricultural Sciences
Priority to CNB2005100401050A priority Critical patent/CN100395763C/zh
Publication of CN1716285A publication Critical patent/CN1716285A/zh
Application granted granted Critical
Publication of CN100395763C publication Critical patent/CN100395763C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本项发明涉及猪个体标识的一种控制方法,属于猪肉产品安全生产数字化管理控制领域。在生猪养殖阶段采用二维条码耳标,在生猪屠宰阶段,由程序模块完成二维条码数据的保存;猪劈半后,在每一片肉上挂上一个无线射频卡,作为电子标识号,通过程序模块完成耳标号与电子标识号的对应;当肉进入冷库冷藏后,程序模块转换为一维条码的信息打印贴在每一片猪肉上,完成猪肉生产各阶段的个体标识控制过程。本发明将相关硬件与系统管理软件紧密结合。它既能够适应现代化猪场饲养管理要求,又能够提供个体标识的自动化水平,提高生产效率。同时,它还可以通过软件的网络模块实现个体标识信息在不同阶段的资源共享,为猪肉可追溯系统的实施提供条件。

Description

猪个体标识的一种控制方法
一、技术领域
本项发明涉及猪肉可追溯系统中的猪个体标识控制方法,属于现代猪肉生产数字化管理控制领域。
二、技术背景
随着一系列食品安全事件的发生以及人畜共患传染病的爆发带给人们的恐慌,世界各国对食品安全越来越关注,疯牛病、口蹄疫和禽流感等疫病的爆发给相关国家的畜牧养殖业造成巨大的、甚至是毁灭性的打击,畜禽产品出口受阻,市场销售下降。在畜禽养殖行业,一些不法畜禽生产者使用违禁添加剂时有发生,药物残留往往严重超标,其产品进入消费市场,严重影响消费者的身体健康。因此,畜禽生产迫切需要一个安全体系框架,使其生产过程在合理的制度和监督下进行,消费者需要“安全透明”,使畜产品生产和流通过程变得可监督和稽查,使消费者买得放心、吃得放心。针对消费者对食品安全的信心丧失,世界各国纷纷制定相关法律和制度,约束和限制违规生产的发生,并试图从源头上控制和杜绝疫病的引入和传播,尽快查清病畜的迁移历史及可能进入食物链的畜产品,通过可稽查的食品安全追溯系统来确保食物的安全生产。
畜产品可追溯系统的建立包括畜体标识、中央数据库和信息传递系统及家畜流动登记三个基本要素。所以建立猪肉生产的标识方法是实施可追溯系统的前提与关键。猪个体标识需具备成本低、易使用、融入当前的管理程序、较高的保留率、易在市场与屠宰场识别、易在屠宰场收集、不得有碎片进入肉品或血液中,以及易将标识信息录入数据库中。
国外的家畜标识自动化程度较高,如电子耳标、电子瘤胃丸、DNA识别、虹膜识别等,但普遍存在成本太高的问题,很难在我国进行推广应用。国内的家畜标识还没有实现自动化技术,无法满足猪肉生产安全管理的自动化水平。
三、发明内容
技术问题本发明针对现有猪个体识别的自动化程度低,与信息管理无法集成控制的现状,提供一种猪肉生产分阶段自动识别控制方法,开发一个集个体识别设备、个体标识信息保存和转换的自动记录系统、管理控制于一身的综合方法,不仅可以提高个体标识的自动化水平、而且可以和猪肉生产可追溯系统进行无缝结合,提高猪肉产品生产的安全水平。
技术方案 猪肉可追溯系统中的猪个体标识的一种控制方法,包括个体标识设备和软件的个体标识控制模块。个体标识模块采用了N层结构即数据库、数据访问层、业务层以及客户界面;采用组件技术开发方法,即数据访问层和业务层全部由组件构成,猪个体识别方法的技术特征在于:
——在生猪养殖阶段采用二维条码耳标,软件系统的养殖阶段耳标号控制程序将猪耳标号传递给系统软件的个体标识组件,完成养殖阶段耳标号保存;
——生猪出售时,将养殖阶段二维条码耳标的信息转换为XML文件,通过Web Service上传到Web服务器;
——在生猪屠宰阶段,当生猪去头时,用条码阅读器读取条形码的信息;
——条形码的信息由阅读器读入后,通过计算机的键盘口,将读取的条形码信息转换为猪耳标号数据,传入计算机;
——然后软件系统的耳标号控制程序将猪耳标号传递给系统软件的个体标识组件,由个体标识组件实现耳标号在数据库中的存储;
——猪劈半后,在每一片肉上挂上一个无线射频卡;
——卡信息由阅读器读取,通过计算机的键盘口,将读取的射频卡信息转换为猪的电子标识号数据,传入计算机;
——然后软件系统的电子标识号控制程序将猪的电子标识号传递给系统软件的个体标识组件,由个体标识组件实现电子标识号在数据库中的存储;
——当一批猪屠宰完成后,软件系统的耳标号与电子标识号控制程序通过个体标识组件从数据库中分别读取猪耳标号与电子标识号,再由个体标识组件完成耳标号与电子标识号的对应;
——当肉进入冷库冷藏后,无线射频卡阅读器再次读取每个射频卡的信息,通过计算机的键盘口,将读取的射频卡信息转换为猪的电子标识号数据,传入计算机;
——然后软件系统中一维条码打印控制程序将猪的电子标识号传递给系统软件的个体标识组件,个体标识组件根据电子标识号从数据库中读取相应的猪耳标号;
——将猪耳标号转换为一维条码的信息,传递给条码打印机,打印一维条码标签,贴在每一片猪肉上,完成猪肉生产各阶段的个体标识控制过程。
通过以上相互关联的硬件设备,加上系统软件作为核心支持,最终实现了猪个体识别的自动化。
有益效果
本发明猪肉可追溯系统中的猪个体标识管理系统已在南京天环养殖场、南京天环屠宰场等地开始使用。经过四批二维条码耳标、电子标识、一维条码标签的自动读取试验,试验结果表明,可显著提高猪个体标识的自动化识别水平,耳标自动读取成功率达到85%以上,标识控制效果准确率100%。
表1  二维条码耳标读取试验结果
Figure C20051004010500121
猪肉安全可追溯管理系统是一个软硬件集成的系统工程。它是利用动物耳标、条形码和电子标识技术,以.NET框架为基础,以组件技术为核心,以养猪场、屠宰场和超市为一体,以Internet为网络架构,将各应用点上的局域网(LAN)、广域网(WAN)互联起来,最终为消费者提供猪肉安全生产信息,提高消费者对猪肉安全品质的信心,构建一个猪肉生产安全管理的现代化信息平台。
本发明通过耳标号——电子标识号的对应关系,系统最终实现了猪所有档案信息的个体对应。在销售阶段,用户只需扫描或输入条码标签上的耳标号,就可以查阅猪从出生到销售全过程的所有信息,真正实现了“从农场到餐桌”的全程控制管理模式。
四、附图说明
图1.二维条码耳标
图2.无线射频卡
图3.基本网络构架
图4.耳标与RFID的转换模块
图5.个体标识数据库模型
图6.耳标号保存web窗体
图7.电子标识号保存web窗体
图8.耳标号与电子标识号保存web窗体
图9.一维条码打印Windows窗体
五、具体实施方式
本发明为猪个体标识的一种控制方法,包括:
1、设计软件的基本构架
个体标识功能模块基于.NET框架,采用了N层结构即数据库、数据访问层、业务层以及客户界面;采用组件技术开发方法,即数据访问层和业务层全部由组件构成。
2、设计软件基本组件
(1)数据访问组件
a、采用SQL语句和存储过程两种形式访问数据库。
b、可以将查询结果以DataSet或DataView结构形式返回数据集。
c、可以执行查询,不返回任何执行结果。
d、可以执行查询,只返回第一行第一个列的值。
(2)数据库连接组件
a、在实现对数据库的访问时,提供数据库服务器的基本参数。
(3)个体标识组件
a、管理养殖阶段二维条码耳标,实现养殖阶段二维条码耳标的查询、添加、修改、删除。
b、管理屠宰阶段二维条码耳标,实现屠宰阶段二维条码耳标的查询、添加、修改、删除。
c、管理无线射频卡,实现电子标识信息的查询、添加、修改、删除。
d、管理猪耳标号与电子标识号的对应,实现耳标号与电子标识对应信息的查询、添加、修改、删除。
e、实现一维条码标签的数据获取和打印。
(4)网络模块
a、数据上传功能:通过养殖阶段的二维条码耳标信息以XML形式,通过Web Service,将资料上传至Internet,进行个体标识信息的统一管理。
b、个体标识信息的发布:可以将个体标识信息发布到Internet,供消费者查看。
各个组件之间,既相互独立,又通过各个组件间的接口相互联系。通过组件接口间的信息传递,各个组件相互协调配合,最终实现了从猪饲养、屠宰、销售的个体识别,也通过网络模块实现了数据资源共享。
3、支持硬件的设计与安装
a、基本的硬件组成
(1)条码耳标:猪场的所有猪,从第一次免疫起就有二维条码耳标作为其身份的识别。
(2)条码扫描器(读卡器):读取猪的条码耳标上的条形码,将条形码传给识别设备,由识别设备提交给系统软件,实现猪耳标号的管理。
(3)无线射频卡:在屠宰劈半后,挂在每一片肉上,作为身份识别。
(4)读卡器:读取猪的射频卡,将卡的信息传给识别设备,由识别设备提交给系统软件,实现猪电子标识号的管理。
(5)读卡器:读取猪的射频卡,将卡的信息传给识别设备,由识别设备提交给系统软件,软件根据猪电子标识号获取猪耳标号,传递给打印机,打印一维条码标签。
b通过自动识别系统完成识别的基本步骤
(1)耳标:采用农业部统一使用的塑料耳标。
(2)条形码:采用市场上通用的Data Matrix,在耳标上用激光进行雕刻。
(3)条码扫描器:采用和条形码配套的扫描器。
(4)无线射频卡:采用市场上通用的无线射频卡。
(5)识别器:采用和无线射频卡配套的识别器。
(6)一维条码打印机:采用市场上通用的一维条码打印机。
完成任务的步骤包括:
——在生猪养殖阶段,每只猪佩戴两只二维条码耳标;
——通过软件系统控制程序将每只猪的两个二维条码耳标的对应关系保存在数据库中;
——生猪出售时,将养殖阶段二维条码耳标的信息上传到Web服务器;
——在生猪屠宰阶段,当生猪去头时,用条码阅读器随机读取每只猪的两个耳标中的一个条形码的信息;
——通过计算机的键盘口,将读取的条形码信息转换为猪耳标号数据,传入计算机;
——然后软件系统控制程序将猪耳标号在数据库中的存储;
——猪劈半后,在每一片肉上挂上一个无线射频卡;
——卡信息由阅读器读取,通过计算机的键盘口,将读取的射频卡信息转换为猪的电子标识号数据,传入计算机。猪耳标号与电子标识号的转换包括二维条码耳标号和电子标识号的转换,主要通过数据库来实现,结构如图5。
猪在流水线上都是依次排列的,在去头时依次读取二维条码耳标号,存入数据表【猪耳标号】中。对无法读取的号码,系统用“99999999999999”进行识别。对非试验耳标的耳标号码用“88888888888888”进行识别。这样屠宰线上所有猪的耳标号在数据表中进行顺序排列。在胴体劈半后,依次在每头猪的两片肉上挂电子标识,并将电子标识号存入数据表【电子标识号】中。最后将两个数据表中当天的记录一对二的读取,存入数据表【耳标号与电子标识号】中,这样某天的每一个电子标识号就可以对应唯一的耳标号。在胴体冷却时,取下电子标识,读取电子标识号,在数据库中获取对应的耳标号,打印出一维条码贴在胴体上,直到超市出售。通过这样的耳标号与电子标识号的相互转换(耳标号与电子标识号的转换模块如图5),超市出售的每片肉都可以对应原始的耳标号,根据耳标号可以获取所有生猪屠宰档案信息。在表【猪耳标号】中,同时记录屠宰方式,主要是为了在保存猪耳标号的同时保存该猪的【生猪屠宰记录】,减少工作量。
——软件系统的控制程序将猪的电子标识号在数据库中的存储;
——当一批猪屠宰完成后,软件系统的控制程序通过个体标识组件从数据库中分别读取猪耳标号与电子标识号,完成耳标号与电子标识号的对应;
——当肉进入冷库冷藏后,无线射频卡阅读器再次读取每个射频卡的信息。通过计算机的键盘口,将读取的射频卡信息转换为猪的电子标识号数据,传入计算机;
——然后软件系统控制程序根据电子标识号,从数据库中读取相应的猪耳标号;
——将猪耳标号转换为一维条码的信息,传递给条码打印机,打印一维条码标签。工作人员将条码标签贴在每一片猪肉上,完成猪肉生产各阶段的个体标识过程。
通过以上相互关联的硬件设备,加上系统软件作为核心支持,最终实现了猪个体识别的自动化。
c系统软件的安装对系统软硬件的要求是:
●CPU在奔腾II以上
●内存128MB以上
●2G以上硬盘
●操作系统:Microsoft Windows Server 2003、Windows XP Professional、Windows XP HomeEdition、Windows 2000(推荐Service Pack 3或更高版本)、Windows Millennium Edition(WindowsMe)、Windows 98、Microsoft Windows NT 4.0(需要Service Pack 6a)。
通过以上三个相互关联的硬件设备,加上系统软件作为核心支持,最终实现了,猪个体识别自动化。
其中实现猪个体标识的全程控制的″耳标号控制″程序模块、″电子标识号控制″程序模块、″耳标号与电子标识号联合控制序模块和″一维条码打印控制″程序模块如下:
#Region″耳标号控制″(图6)
将耳标号保存功能单独列出,当执行BtOK.Click事件时调用SaveData方法
    Public Sub SaveData(ByVal textstr As String,ByVal usedate As DateTime,ByVal mode As String,ByVal slaughter As String,ByVal farmname As String)
       If textstr=config.Earmark1 Then’没有二维条码耳标的猪用config.Earmark1(即99999999999999)
表示
            EarMark=″″
            EarMark=textstr
            Dim accountSystem As New SMEarmark(0,textstr,usedate,mode,slaughter,farmname)
            accountSystem.Save()
       ElseIf textstr=config.Earmark2 Then’有二维条码耳标的猪但无法读取耳标号时用
config.Earmark2(即88888888888888)表示
            EarMark=″″
            EarMark=textstr
            Dim accountSystem As New SMEarmark(0,textstr,usedate,mode,slaughter,farmname)
            accountSystem.Save()
       Else’自动读取系统猪耳标号
            EarMark=textstr
            Dim useid As Integer
            If EarMark<>″″Then’如果输入的耳标数据不为空,则判断该耳标号是否已经保存在数据库中
                useid=SMEarmark.GetID(EarMark)
            End If
            If useid<>0 Then’如果没有数据库中没有,则插入该记录,否则修改该记录
                Dim accountSystem As New SMEarmark(useid,textstr,usedate,mode,slaughter,
                     farmname)
               accountSystem.Save()
            Else
               Dim accountSystem As New SMEarmark(0,textstr,usedate,mode,slaughter,farmname)
               accountSystem.Save()
            End If
        End If
    End Sub
’*********************从数据库读取耳标号数据************************
    Public Sub EarmarkFromDatabase(ByVal usedate As DateTime)
        Dim earmark As SMEarmark
        Dim config As IDataConn=New ConnStr
        Dim number As Integer=0
        Dim earstr As String
        Dim ArrEarmark As New ArrayList
        Dim dv As DataView
        dv=SMEarmark.GetEarmarkByDate(usedate)
        If dv.Table.Rows.Count>0 Then
            TxtCount.Text=dv.Table.Rows.Count
            Dim dr As DataRow
            For Each dr In dv.Table.Rows
                earstr=Trim(dr(1).ToString)
                ArrEarmark.Add(earstr+″,″+Trim(dr(2).ToString))
                If earstr=config.Earmark1 Then’非系统猪
                    number=number+1
                End If
            Next dr
            TxtNoCount.Text=number
        End If
        ListEarmark.DataSource=ArrEarmark
        ListEarmark.DataBind()
        End Sub
条码阅读器读取的数据直接输入到Txtearmark文本框中,因为条码阅读器读取数据是以回车键结束,因此执行Page_Load事件。
Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load
       If Not IsPostBack Then’初始化页的用户代码
            DListName.DataSource=SMCorporation.GetCorporationName’绑定屠宰场名称控件
            DListName.DataBind()
            DlistFarm.DataSource=SMCorporation.GetCorporationName’绑定屠宰场名称控件
            DlistFarm.DataBind()
            Dim focus As GetFocus
            focus.SetFocus(Txtearmark)’获得焦点
            txtdate.Text=Today
            EarmarkFromDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
            ListEarmark.DataBind()
        Else
            If Txtearmark.Text<>″″Then’如果输入的耳标数据不为空,则该保存耳标号到数据库中
                SaveData(Txtearmark.Text,Convert.ToDateTime(txtdate.Text).ToString(″d″),
                DListMode.SelectedValue,TxtSlaughter.Text,TxtFarmname.Text)
                Txtearmark.Text=″″
            End If
            EarmarkFromDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
            Dim focus As GetFocus
            focus.SetFocus(Txtearmark)’获得焦点
        End If
        End Sub
     点击【确定】按钮也可保存数据,这时执行BtOK.Click事件
   Private Sub BtOK_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles BtOK.Click
        If Txtearmark.Text<>″″Then
            SaveData(Txtearmark.Text,Convert.ToDateTime(txtdate.Text).ToString(″d″),
DListMode.SelectedValue,TxtSlaughter.Text,TxtFarmname.Text)
            Txtearmark.Text=″″
        End If
        Txtearmark.Text=″″
        EarmarkFromDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
        Dim focus As GetFocus
        focus.SetFocus(Txtearmark)’获得焦点
        End Sub
#End Region
#Region″电子标识号控制″(图7)
    Public Sub SaveData(ByVal textstr As String,ByVal number As String,ByVal usedate As DateTime)
        Dim useid As Integer
        useid=SMPipelining.GetID(textstr,usedate)
        If useid<>0 Then
            Dim accountSystem As New SMPipelining(useid,textstr,number,usedate)
            accountSystem.Save()
        Else
            Dim accountSystem As New SMPipelining(0,textstr,number,usedate)
            accountSystem.Save()
        End If
    End Sub
#End Region
#Region″从数据库中读取″
    Public Function ReaderDatabase(ByVal number As String,ByVal usedate As DateTime)As String
        Dim earmark As SMEarmark
        Dim ReadString As String
        Dim dv As DataView=SMPipelining.GetdetailsDataViewBynumberdate(number,usedate)
        If dv.Table.Rows.Count>0 Then
            ReadString=″″
            Dim dr As DataRow
            For Each dr In dv.Table.Rows
                ReadString=ReadString+ControlChars.Cr+Trim(dr(1).ToString)+″,″+
Trim(dr(2).ToString)+″,″+Trim(dr(3).ToString)
            Next dr
        End If
        Return ReadString
    End Function
#End Region
无线射频标签阅读器读取的数据直接输入到TxtRFIDOne文本框中,因为阅读器读取数据是以回车键结束,因此执行Page_Load事件。
Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load
        If Not IsPostBack Then’初始化页的用户代码
            Dim focus As GetFocus
            focus.SetFocus(TxtRFIDOne)’获得焦点
            Session(″number″)=1
            txtdate.Text=Today
            TxtRFIDLists.Text=ReaderDatabase(DListNumber.SelectedValue,txtdate.Text)
        Else’重新加载该页的用户代码
            If TxtRFIDOne.Text<>″″Then
                SaveData(TxtRFIDOne.Text,DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
                TxtRFIDOne.Text=″″
            End If
            TxtRFIDLists.Text=ReaderDatabase(DListNumber.SelectedValue,txtdate.Text)
            Dim focus As GetFocus
           focus.SetFocus(TxtRFIDOne)’获得焦点
       End If
   End Sub
点击【确定】按钮也可保存数据,这时执行BtOK.Click事件
   Private Sub BtOK_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)
        If TxtRFIDOne.Text<>″″Then
            SaveData(TxtRFIDOne.Text,DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
            TxtRFIDOne.Text=″″
        End If
        TxtRFIDLists.Text=ReaderDatabase(DListNumber.SelectedValue,txtdate.Text)
        Dim focus As GetFocus
        focus.SetFocus(TxtRFIDOne)’获得焦点
    End Sub
#Region″耳标号与电子标识号联合控制″(图8)
根据日期读取数据库中记录的耳标号
    Private Function ArrEarDatabase(ByVal usedate As DateTime)As ArrayList
        Dim dv As DataView
        Dim ArrEarID As New ArrayList
        dv=SMEarmark.GetEarmarkByDate(usedate)
        If dv.Table.Rows.Count>0 Then
            Dim dr As DataRow
            For Each dr In dv.Table.Rows
                ArrEarID.Add(dr(0).ToString)’earmarkID
            Next dr
        End If
        Return ArrEarID
    End Function
根据日期和胴体上挂的电子标签个数读取数据库中记录的电子标识号
    Private Function ArrRFDatabase(ByVal number As String,ByVal usedate As DateTime)As ArrayList
        Dim dv As DataView
        Dim ArrEar As New ArrayList
        dv=SMPipelining.GetdetailsDataViewBynumberdate(number,usedate)
        If dv.Table.Rows.Count>0 Then
            Dim dr As DataRow
            For Each dr In dv.Table.Rows
                ArrEar.Add(dr(0).ToString)’PipeliningID
            Next dr
        End If
        Return ArrEar
        End Function
    #End Region
#Region″查看耳标事件″
     Private Sub BtnEarOK_Click(ByVal sender As System.Object,ByVale As System.EventArgs)Handles
BtnEarOK.Click
        TxtLists1.Text=EarReaderDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
    End Sub
#End Region
#Region″查看电子标识事件″
    Private Sub BtnRFIDOK_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles
BtnRFIDOK.Click
        TxtLists2.Text=RFReaderDatabase(DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
    End Sub
#End Region
#Region″查看耳标与电子标识关系的事件″
    Private Sub BtnQuery_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles
BtnQuery.Click
        Dim ArrEarmarkID As New ArrayList
        Dim ArrRFID As New ArrayList
        Dim earstr1,RFStr,IDStr As String
        IDStr=″″
        ArrEarmarkID=ArrEarDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
        ArrRFID=ArrRFDatabase(DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
        Dim i,j,k,earcount,Rfcount,number As Integer
        earcount=ArrEarmarkID.Count
        Rfcount=ArrRFID.Count
        number=Convert.ToInt32(DListNumber.SelectedValue)
        j=0
        For i=0 To earcount-1
            If j>Rfcount-1 Then
                Exit For
            End If
            Dim earclass As New SMEarmark(Convert.ToInt32(ArrEarmarkID.Item(i)))
            earclass.Load()
            earstr1=earclass.earmark
            IDStr=IDStr+Trim(earstr1)+″,″
            For k=1 To number
                Dim RFClass As New SMPipelining(ArrRFID.Item(j))
                RFClass.Load()
                RFStr=RFClass.Pipelining
                IDStr=IDStr+Trim(RFStr)+″,″
                j=j+1
            Next
            IDStr=IDStr+ControlChars.Cr
        Next
        TxtID.Text=IDStr
    End Sub
#End Region
#Region″保存耳标与电子标识″
    Private Sub BtOK_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles BtOK.Click
        Dim ArrEarmarkID As New ArrayList
        Dim ArrRFID As New ArrayList
        Dim earstr1,RFStr As String
        Dim useid As Integer
        ArrEarmarkID=ArrEarDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
        ArrRFID=ArrRFDatabase(DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
        Dim i,j,k,earcount,Rfcount,number As Integer
        earcount=ArrEarmarkID.Count
        Rfcount=ArrRFID.Count
        number=Convert.ToInt32(DListNumber.SelectedValue)
       j=0
       For i=0 To earcount-1
           If j>Rfcount-1 Then
               Exit For
           End If
           Dim earclass As New SMEarmark(Convert.ToInt32(ArrEarmarkID.Item(i)))
           earclass.Load()
               earstr1=earclass.earmark
               Dim config As IDataConn=New ConnStr
           If earstr1=config.Earmark1 Then’非本系统猪耳标号
                     j=j+number
                     Exit For
              ElseIf earstr1=config.Earmark2 Then’本系统猪,但无法读取耳标号
                     earstr1=TxtBatch.Text
              End If
             ’*************保存屠宰记录*********************
             useid=SMPigButcher.GetID(earstr1)
             If useid<>0 Then
                 Dim accountSystem As New SMPigButcher(useid,earstr1,earclass.notedate,
earclass.mode,earclass.slaughter,earclass.farmname)
                 accountSystem.Save()
             Else
                 Dim accountSystem As New SMPigButcher(0,earstr1,earclass.notedate,earclass.mode,
earclass.slaughter,earclass.farmname)
                 accountSystem.Save()
             End If
             ’***************耳标与电子标识号*********************
             For k=1 To number
                 Dim RFClass As New SMPipelining(ArrRFID.Item(j))
                 RFClass.Load()
                 RFStr=RFClass.Pipelining
                 useid=SMEarPipelining.GetID(earstr1,RFStr,RFClass.Number)
                 If useid<>0 Then
                     Dim accountSystem As New SMEarPipelining(useid,earstr1,RFStr,RFClass.Number,
Convert.ToDateTime(txtdate.Text).ToString(″d″),″″)
                     accountSystem.Save()
                 Else
                     Dim accountSystem As New SMEarPipelining(0,earstr1,RFStr,RFClass.Number,
Convert.ToDateTime(txtdate.Text).ToString(″d″),″″)
                     accountSystem.Save()
                 End If
                j=j+1
            Next
        Next
    End Sub
#End Region
一维条码打印控制(采用VB 6.0中文版编写)(图9)
″″″打印机控制函数WinPPLA.DLL Version 2.7AW″″″″″′
Private Declare Function A_CreatePrn Lib″WINPPLA.DLL″(ByVal selection As Long,ByVal filename As
        String)As Long
Private Declare Function A_Set_Darkness Lib″WINPPLA.DLL″(ByVal darkness As Long)As Long
Private Declare Function A_Prn_Barcode Lib″WINPPLA.DLL″(ByVal x As Long,ByVal y As Long,ByVal
        ori As Long,ByVal typee As Byte,ByVal narrow As Long,ByVal width As Long,ByVal height
        As Long,ByVal mode As Byte,ByVal numeric As Long,ByVal data As String)As Long
Private Declare Function A_Prn_Text Lib″WINPPLA.DLL″(ByVal x As Long,ByVal y As Long,ByVal ori
        As Long,ByVal font As Long,ByVal typee As Long,ByVal hor_factor As Long,ByVal ver_factor
        As Long,ByVal mode As Byte,ByVal numeric As Long,ByVal data As String)As Long
Private Declare Function A_Print_Out Lib″WINPPLA.DLL″(ByVal width As Long,ByVal height As Long,
        ByVal copies As Long,ByVal amount As Long)As Long
Private Declare Sub A_ClosePrn Lib″WINPPLA.DLL″()
”一维条码打印窗体载入事件”
Private Sub Form_Load()
  If DataEnvironment1.rsCmdSel.State<>adStateOpen Then
     DataEnvironment1.rsCmdSel.Open
  End If
  i=0
  limit=3
  Combo2.Clear
  If DataEnvironment1.rsDateList.State<>adStateOpen Then
     DataEnvironment1.rsDateList.Open
  End If
  Do While Not DataEnvironment1.rsDateList.EOF
     Combo2.AddItem DataEnvironment1.rsDateList.Fields(0).Value
     DataEnvironment1.rsDateList.MoveNext
  Loop
End Sub
”’TxtRFID按下回车键事件,获取对应猪耳标号”’
Private Sub TxtRFID_KeyPress(KeyAscii As Integer)
 On Error Resume Next
  If KeyAscii=vbKeyReturn Then
   With DataEnvironment1.rsNumberSel
     If.State<>adStateClosed Then
        .Close
     End If
     DataEnvironment1.Commands(″NumberSel″).Parameters(0)=Trim(TxtRFID.Text)
     .Open
     TxtEarmark.Text=.Fields(″猪耳标号″)
      End With
 End If
End Sub
”’一维条码打印事件”’
Private Sub CmdPrn_Click()
Dim intI As Integer
Dim i As Integer
intI=Val(Trim(TxtNumber.Text))
For i=1 To intI
      Print A_CreatePrn(1,″a22″)
      Print A_Set_Darkness(10)
      Print A_Prn_Barcode(25,10,1,69,0,10,50,98,1,″A″& Mid(TxtEarmark.Text,7,9))
      Print A_Prn_Text(20,70,1,4,0,1,1,110,2,TxtEarmark.Text)
      Print A_Print_Out(1,1,1,1)
      Call A_ClosePrn
 Next i
End Sub
以上猪肉可追溯系统中的猪个体标识控制方法已在南京天环养殖场、南京天环屠宰场等地开始使用。经过四批二维条码耳标、电子标识、一维条码标签的自动读取试验,试验结果表明,可显著提高猪个体标识的自动化识别水平,耳标自动读取成功率为85%以上,标识控制准确率100%。
表1  二维条码耳标读取试验结果
Figure C20051004010500231

Claims (1)

1.猪个体标识的一种控制方法,其采用个体标识设备和软件的个体标识控制模块,个体标识控制模块采用了N层结构,即数据库、数据访问层、业务层以及客户界面;数据访问层和业务层全部采用组件技术开发方法,组件技术开发方法
——在生猪养殖阶段采用二维条码耳标;
——在生猪屠宰阶段,当生猪去头时,用二维条码阅读器读取条形码的信息,作为猪耳标号,传入计算机,由程序模块完成二维条码数据的保存;
——猪劈半后,在每一片肉上挂上一个无线射频卡;
——读取每个射频卡的信息,作为电子标识号,传入计算机,由程序模块完成无线射频卡数据的保存;
——当一批猪屠宰完成后,从数据库中读取猪耳标号与电子标识号,通过程序模块完成猪耳标号与电子标识号的对应;
——当肉进入冷库冷藏后,再次读取每个射频卡的信息,程序模块根据射频卡数据从数据库中获得相应的猪耳标号;
——将猪耳标号转换为一维条码的信息,传递给条码打印机,打印一维条码标签,贴在每一片猪肉上,完成猪肉生产各阶段的个体标识过程,
其特征在于:
实现猪个体标识的全程控制的″耳标号控制″程序模块、″电子标识号控制″程序模块、″耳标号与电子标识号联合控制″程序模块和″一维条码打印控制″程序模块如下:
#Region″耳标号控制″
将耳标号保存功能单独列出,当执行BtOK.Click事件时调用SaveData方法
Public Sub SaveData(ByVal textstr As String,ByVal usedate As DateTime,ByVal mode As String,ByVal slaughter As String,ByVal farmname As String)
   If textstr=config.Earmark1 Then’没有二维条码耳标的猪用config.Earmark1即99999999999999
表示
        EarMark=″″
        EarMark=textstr
        Dim accountSystem As New SMEarmark(0,textstr,usedate,mode,slaughter,farmname)
        accountSystem.Save()
    ElseIf textstr=config.Earmark2 Then’有二维条码耳标的猪但无法读取耳标号时用
config.Earmark2即88888888888888表示
        EarMark=″″
        EarMark=textstr
        Dim accountSystem As New SMEarmark(0,textstr,usedate,mode,slaughter,farmname)
        accountSystem.Save()
    Else’自动读取系统猪耳标号
        EarMark=textstr
        Dim useid As Integer
        If EarMark<>″″Then’如果输入的耳标数据不为空,则判断该耳标号是否已经保存在数据库中
            useid=SMEarmark.GetID(EarMark)
        End If
        If useid<>0 Then’如果没有数据库中没有,则插入该记录,否则修改该记录
            Dim accountSystem As New SMEarmark(useid,textstr,usedate,mode,slaughter,
                 farmname)
            accountSystem.Save()
        Else
            Dim accountSystem As New SMEarmark(0,textstr,usedate,mode,slaughter,farmname)
            accountSystem.Save()
        End If
    End If
End Sub
从数据库中读取数据
Public Sub EarmarkFromDatabase(ByVal usedate As DateTime)
   Dim earmark As SMEarmark
   Dim config As IDataConn=New ConnStr
   Dim number As Integer=0
   Dim earstr As String
   Dim ArrEarmark As New ArrayList
   Dim dv As DataView
   dv=SMEarmark.GetEarmarkByDate(usedate)
   If dv.Table.Rows.Count>0 Then
       TxtCount.Text=dv.Table.Rows.Count
       Dim dr As DataRow
       For Each dr In dv.Table.Rows
           earstr=Trim(dr(1).ToString)
           ArrEarmark.Add(earstr+″,″+Trim(dr(2).ToString))
           If earstr=config.Earmark1 Then’非系统猪
               number=number+1
           End If
       Next dr
       TxtNoCount.Text=number
   End If
   ListEarmark.DataSource=ArrEarmark
   ListEarmark.DataBind()
   End Sub
条码阅读器读取的数据直接输入到Txtearmark文本框中,因为条码阅读器读取数据是以回车键结束,因此执行Page_Load事件;
Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load
       If Not IsPostBack Then’初始化页的用户代码
            DListName.DataSource=SMCorporation.GetCorporationName’绑定屠宰场名称控件
            DListName.DataBind()
            DlistFarm.DataSource=SMCorporation.GetCorporationName’绑定屠宰场名称控件
            DlistFarm.DataBind()
            Dim focus As GetFocus
            focus.SetFocus(Txtearmark)’获得焦点
            txtdate.Text=Today
          EarmarkFromDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
          ListEarmark.DataBind()
      Else
          If Txtearmark.Text<>″″Then’如果输入的耳标数据不为空,则该保存耳标号到数据库中
              SaveData(Txtearmark.Text,Convert.ToDateTime(txtdate.Text).ToString(″d″),
              DListMode.SelectedValue,TxtSlaughter.Text,TxtFarmname.Text)
              Txtearmark.Text=″″
          End If
          EarmarkFromDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
          Dim focus As GetFocus
          focus.SetFocus(Txtearmark)’获得焦点
      End If
      End Sub
  点击【确定】按钮也可保存数据,这时执行BtOK.Click事件
  Private Sub BtOK_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles BtOK.Click
        If Txtearmark.Text<>″″Then
            SaveData(Txtearmark.Text,Convert.ToDateTime(txtdate.Text).ToString(″d″),
DListMode.SelectedValue,TxtSlaughter.Text,TxtFarmname.Text)
            Txtearmark.Text=″″
        End If
        Txtearmark.Text=″″
        EarmarkFromDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
        Dim focus As GetFocus
        focus.SetFocus(Txtearmark)’获得焦点
        End Sub
#End Region
#Region″电子标识号控制″
    Public Sub SaveData(ByVal textstr As String,ByVal number As String,ByVal usedate As DateTime)
        Dim useid As Integer
        useid=SMPipelining.GetID(textstr,usedate)
        If useid<>0 Then
            Dim accountSystem As New SMPipel ining(useid,textstr,number,usedate)
            accountSystem.Save()
        Else
            Dim accountSystem As New SMPipelining(0,textstr,number,usedate)
            accountSystem.Save()
        End If
    End Sub
#End Region
#Region″从数据库中读取″
    Public Function ReaderDatabase(ByVal number As String,ByVal usedate As DateTime)As String
       Dim earmark As SMEarmark
       Dim ReadString As String
       Dim dv As DataView=SMPipelining.GetdetailsDataViewBynumberdate(number,usedate)
        If dv.Table.Rows.Count>0 Then
            ReadString=″″
            Dim dr As DataRow
            For Each dr In dv.Table.Rows
                ReadString=ReadString+ControlChars.Cr+Trim(dr(1).ToString)+″.″+
Trim(dr(2).ToString)+″,″+Trim(dr(3).ToString)
            Next dr
        End If
        Return ReadString
    End Function
#End Region
    无线射频标签阅读器读取的数据直接输入到TxtRFIDOne文本框中,因为阅读器读取数据是以回车键结束,因此执行Page_Load事件;
Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load
        If Not IsPostBack Then’初始化页的用户代码
            Dim focus As GetFocus
            focus.SetFocus(TxtRFIDOne)’获得焦点
            Session(″number″)=1
            txtdate.Text=Today
            TxtRFIDLists.Text=ReaderDatabase(DListNumber.SelectedValue,txtdate.Text)
      Else’重新加载该页的用户代码
          If TxtRFIDOne.Text<>″″Then
              SaveData(TxtRFIDOne.Text,DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
              TxtRFIDOne.Text=″″
          End If
          TxtRFIDLists.Text=ReaderDatabase(DListNumber.SelectedValue,txtdate.Text)
          Dim focus As GetFocus
          focus.SetFocus(TxtRFIDOne)’获得焦点
      End If
  End Sub
点击【确定】按钮也可保存数据,这时执行BtOK.Click事件
Private Sub BtOK_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)
      If TxtRFIDOne.Text<>″″Then
          SaveData(TxtRFIDOne.Text,DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
            TxtRFIDOne.Text=″″
        End If
        TxtRFIDLists.Text=ReaderDatabase(DListNumber.SelectedValue,txtdate.Text)
        Dim focus As GetFocus
        focus.SetFocus(TxtRFIDOne)’获得焦点
    End Sub
#Region″耳标号与电子标识号联合控制″
根据日期读取数据库中记录的耳标号
    Private Function ArrEarDatabase(ByVal usedate As DateTime)  As ArrayList
        Dim dv As DataView
        Dim ArrEarID As New ArrayList
        dv=SMEarmark.GetEarmarkByDate(usedate)
        If dv.Table.Rows.Count>0 Then
            Dim dr As DataRow
            For Each dr In dv.Table.Rows
                ArrEarID.Add(dr(0).ToString)’earmarkID
            Next dr
        End If
        Return ArrEarID
    End Function
根据日期和胴体上挂的电子标签个数读取数据库中记录的电子标识号
    Private Function ArrRFDatabase(ByVal number As String,ByVal usedate As DateTime)As ArrayList
        Dim dv As DataView
        Dim ArrEar As New ArrayList
        dv=SMPipelining.GetdetailsDataViewBynumberdate(number,usedate)
        If dv.Table.Rows.Count>0 Then
            Dim dr As DataRow
            For Each dr In dv.Table.Rows
                ArrEar.Add(dr(0).ToString)’PipeliningID
            Next dr
        End If
        Return ArrEar
        End Function
    #End Region
#Region″查看耳标事件″
    Private Sub BtnEarOK_Click(ByVal sender As System.Object,ByVal e As System.EyentArgs)Handles
BtnEarOK.Click
        TxtListsl.Text=EarReaderDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
    End Sub
#End Region
#Region″查看电子标识事件″
    Private Sub BtnRFIDOK_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles
BtnRFIDOK.Click
        TxtLists2.Text=RFReaderDatabase(DListNumber.SelectedValue.
Convert.ToDateTime(txtdate.Text).ToString(″d″))
    End Sub
#End Region
#Region″查看耳标与电子标识关系的事件″
    Private Sub BtnQuery_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles
BtnQuery.Click
        Dim ArrEarmarkID As New ArrayList
        Dim ArrRFID As New ArrayList
        Dim earstr1,RFStr,IDStr As String
        IDStr=″″
        ArrEarmarkID=ArrEarDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
        ArrRFID=ArrRFDatabase(DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
        Dim i,j,k,earcount,Rfcount,number As Integer
        earcount=ArrEarmarkID.Count
        Rfcount=ArrRFID.Count
        number=Convert.ToInt32(DListNumber.SelectedValue)
        j=0
        For i=0 To earcount-1
            If j>Rfcount-1 Then
                    Exit For
            End If
            Dim earclass As New SMEarmark(Convert.ToInt32(ArrEarmarkID.Item(i)))
            earclass.Load()
            earstr1=earclass.earmark
            IDStr=IDStr+Trim(earstr1)+″,″
            For k=1 To number
                Dim RFClass As New SMPipelining(ArrRFID.Item(j))
                RFClass.Load()
                RFStr=RFClass.Pipelining
                IDStr=IDStr+Trim(RFStr)+″,″
                j=j+1
            Next
            IDStr=IDStr+ControlChars.Cr
        Next
        TxtID.Text=IDStr
    End Sub
#End Region
#Region″保存耳标与电子标识″
    Private Sub BtOK_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles BtOK.Click
        Dim ArrEarmarkID As New ArrayList
        Dim ArrRFID As New ArrayList
        Dim earstr1.RFStr As String
        Dim useid As Integer
        ArrEarmarkID=ArrEarDatabase(Convert.ToDateTime(txtdate.Text).ToString(″d″))
        ArrRFID=ArrRFDatabase(DListNumber.SelectedValue,
Convert.ToDateTime(txtdate.Text).ToString(″d″))
        Dim i,j,k,earcount,Rfcount,number As Integer
        earcount=ArrEarmarkID.Count
        Rfcount=ArrRFID.Count
        number=Convert.ToInt32(DListNumber.SelectedValue)
         j=0
         For i=0 To earcount-1
             If j>Rfcount-1 Then
                 Exit For
             End If
             Dim earclass As New SMEarmark(Convert.ToInt32(ArrEarmarkID.Item(i)))
             earc lass.Load()
             earstr1=earclass.earmark
             Dim config As IDataConn=New ConnStr
        If earstr1=config.Earmark1 Then’非本系统猪耳标号
                j=j+number
                Exit For
            ElseIf earstr1=config.Earmark2 Then’本系统猪,但无法读取耳标号
                earstr1=TxtBatch.Text
            End If
            ’*************保存屠宰记录*********************
            useid=SMPigButcher.GetID(earstr1)
            If useid<>0 Then
                Dim accountSystem As New SMPigButcher(useid,earstr1,earclass.notedate,
earclass.mode,earclass.slaughter,earclass.farmname)
                accountSystem.Save()
           Else
                Dim accountSystem As New SMPigButcher(0,earstr1,earclass.notedate,earclass.mode,
earclass.slaughter,earclass.farmname)
                accountSystem.Save()
            End If
            ’***************耳标与电子标识号*********************
            For k=1 To number
                Dim RFClass As New SMPipelining(ArrRFID.Item(j))
                RFClass.Load()
                RFStr=RFClass.Pipelining
                useid=SMEarPipelining.GetID(earstr1,RFStr,RFClass.Number)
                If useid<>0 Then
                    Dim accountSystem As New SMEarPipelining(useid,earstr1,RFStr,RFClass.Number,
Convert.ToDateTime(txtdate.Text).ToString(″d″),″″)
                    accountSystem.Save()
                Else
                    Dim accountSystem As New SMEarPipel ining(0,earstr1,RFStr,RFClass.Number,
Convert.ToDateTime(txtdate.Text).ToString(″d″),″″)
                    accountSystem.Save()
                End If
                j=j+1
            Next
        Next
    End Sub
#End Region
一维条码打印控制采用VB 6.0中文版编写
”””打印机控制函数WinPPLA.DLL Version 2.7AW”””””’
Private Declare Function A_CreatePrn Lib″WINPPLA.DLL″(ByVal selection As Long,ByVal filename As
        String)As Long
Private Declare Function A_Set_Darkness Lib″WINPPLA.DLL″(ByVal darkness As Long)As Long
Private Declare Function A_Prn_Barcode Lib″WINPPLA.DLL″(ByVal x As Long,ByVal y As Long,ByVal
        ori As Long,ByVal typee As Byte,ByVal narrow As Long,ByVal width As Long,ByVal height
        As Long,ByVal mode As Byte,ByVal numeric As Long,ByVal data As String)As Long
Private Declare Function A_Prn_Text Lib″WINPPLA.DLL″(ByVal x As Long,ByVal y As Long,ByVal ori
        As Long,ByVal font As Long,ByVal typee As Long,ByVal hor_factor As Long,ByVal ver_factor
        As Long,ByVal mode As Byte,ByVal numeric As Long,ByVal data As String)As Long
Private Declare Function A_Print_Out Lib″WINPPLA.DLL″(ByVal width As Long,ByVal height As Long,
         ByVal copies As Long.ByVal amount As Long)As Long
Private Declare Sub A_ClosePrn Lib″WINPPLA.DLL″()
”一维条码打印窗体载入事件”
Private Sub Form_Load()
  If DataEnvironment1.rsCmdSel.State<>adStateOpen Then
     DataEnvironment1.rsCmdSel.Open
  End If
  i=0
  limit=3
  Combo2.Clear
  If DataEnvironment1.rsDateList.State<>adStateOpen Then
     DataEnvironment1.rsDateList.Open
  End If
  Do While Not DataEnvironment1.rsDateList.EOF
     Combo2.AddItem DataEnvironment1.rsDateList.Fields(0).Value
     DataEnvironment1.rsDateList.MoveNext
  Loop
End Sub
”’TxtRFID按下回车键事件,获取对应猪耳标号”’
Private Sub TxtRFID_KeyPress(KeyAscii As Integer)
 On Error Resume Next
 If KeyAscii=vbKeyReturn Then
    With DataEnvironment1.rsNumberSel
       If.State<>adStateClosed Then
         .Close
    End If
    DataEnvironment1.Commands(″NumberSel″).Parameters(0)=Trim(TxtRFID.Text)
    .Open
    TxtEarmark.Text=.Fields(″猪耳标号″)
        End With
  End If
End Sub
”’一维条码打印事件”’
Private Sub CmdPrn_Click()
Dim intI As Integer
Dim i As Integer
intI=Val(Trim(TxtNumber.Text))
For i=1 To intI
      Print A_CreatePrn(1,″a22″)
      Print A_Set_Darkness(10)
      Print A_Prn_Barcode(25,10,1,69,0,10,50,98,1,″A″&Mid(TxtEarmark.Text,7,9))
      Print A_Prn_Text(20,70,1,4,0,1,1,110,2,TxtEarmark.Text)
      Print A_Print_Out(1,1,1,1)
      Call A_ClosePrn
 Next i
End Sub。
CNB2005100401050A 2005-05-20 2005-05-20 猪个体标识的一种控制方法 Expired - Fee Related CN100395763C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100401050A CN100395763C (zh) 2005-05-20 2005-05-20 猪个体标识的一种控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100401050A CN100395763C (zh) 2005-05-20 2005-05-20 猪个体标识的一种控制方法

Publications (2)

Publication Number Publication Date
CN1716285A CN1716285A (zh) 2006-01-04
CN100395763C true CN100395763C (zh) 2008-06-18

Family

ID=35822103

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100401050A Expired - Fee Related CN100395763C (zh) 2005-05-20 2005-05-20 猪个体标识的一种控制方法

Country Status (1)

Country Link
CN (1) CN100395763C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298733A (zh) * 2009-12-04 2011-12-28 上海生物电子标识有限公司 国际动物标识识别码与国家动物追溯码的转换方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162512B (zh) * 2006-10-11 2010-10-13 北京农业信息技术研究中心 水产养殖产品质量安全全程管理与追溯方法及系统
CN102364494A (zh) * 2011-08-17 2012-02-29 上海迈天印务科技发展有限公司 一种电子二维码动物耳标无线射频系统
CN102800023A (zh) * 2012-07-10 2012-11-28 上海创博食品技术发展有限公司 一种实现猪肉可追溯性的方法
CN102819251B (zh) * 2012-08-10 2015-02-04 南京航空航天大学 一种实现生猪屠宰工艺参数的采集方法
CN103136702A (zh) * 2012-12-29 2013-06-05 青岛中科软件股份有限公司 基于rfid技术的肉类食品追溯系统
US10373125B2 (en) 2016-12-29 2019-08-06 Avery Dennison Retail Information Services, Llc Printer acting as host for device printers/scanners
AU2016434409B2 (en) * 2016-12-29 2021-08-05 Avery Dennison Retail Information Services Llc Printer acting as host for device printers/scanners

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
基于组件技术的猪肉安全生产全程数字化监控系统. 谢菊芳,李保明,陆昌华,王立方,时勇,薛启奎,李保生.中国农业大学学报,第10卷第1期. 2005
基于组件技术的猪肉安全生产全程数字化监控系统. 谢菊芳,李保明,陆昌华,王立方,时勇,薛启奎,李保生.中国农业大学学报,第10卷第1期. 2005 *
工厂化猪肉安全生产溯源数字系统的设计. 陆昌华,王立方,谢菊芳,胡肆农.江苏农业学报,第20卷第4期. 2004
工厂化猪肉安全生产溯源数字系统的设计. 陆昌华,王立方,谢菊芳,胡肆农.江苏农业学报,第20卷第4期. 2004 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298733A (zh) * 2009-12-04 2011-12-28 上海生物电子标识有限公司 国际动物标识识别码与国家动物追溯码的转换方法
CN102298733B (zh) * 2009-12-04 2014-03-12 上海生物电子标识有限公司 国际动物标识识别码与国家动物追溯码的转换方法

Also Published As

Publication number Publication date
CN1716285A (zh) 2006-01-04

Similar Documents

Publication Publication Date Title
CN100395763C (zh) 猪个体标识的一种控制方法
Bai et al. Traceability technologies for farm animals and their products in China
Feng et al. Development and evaluation on a RFID-based traceability system for cattle/beef quality safety in China
CN101162512B (zh) 水产养殖产品质量安全全程管理与追溯方法及系统
US6664897B2 (en) Method and system for livestock data collection and management
Pizzuti et al. MESCO (MEat Supply Chain Ontology): An ontology for supporting traceability in the meat supply chain
CN101201928A (zh) 牛肉产品质量安全全程跟踪与追溯方法及系统
US20090187583A1 (en) Enhanced label claim validation
CN103955780A (zh) 实现生态猪肉品质安全可追溯的方法
CN102810197A (zh) 基于物联网的水产品溯源与安全预警方法及系统
CN103886407A (zh) 一种基于物联网和数据库技术的生猪全产业链溯源系统
Yang et al. The design and implementation of halal beef wholly quality traceability system
CN108292385B (zh) 用于农业生产和性能管理的基因组技术
Mennecke et al. Radio frequency identification tagging as a mechanism of creating a viable producer's brand in the cattle industry
Ma et al. The monitoring and information management system of pig breeding process based on internet of things
US20230172218A1 (en) Facilitating Traceability of Animal-Based Meat Products
CN107146037A (zh) 基于移动终端的屠宰溯源系统
Kafetzopoulos et al. Managing Traceability in the Meat Processing Industry: Principles, Guidelines and Technologies.
Yu et al. Safety traceability system of livestock and poultry industrial chain
Purnama et al. Information Technology Infrastructure Design for Beef Supply Chain Traceability in Indonesia
Luo et al. A study on pig slaughter traceability solution based on RFID
Xu et al. Design and Implementation of “Reassurance Broiler Project” Traceability Platform
Purnama et al. Prototype development of National Cattle Identification and Database System based on information technology
Bao et al. Beef farming quality traceability system based on PDA and GSM Modem
KR102185398B1 (ko) 축산물 생애 정보 제공 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080618

Termination date: 20150520

EXPY Termination of patent right or utility model