臺(tái)達(dá)PLC配合組態(tài)王實(shí)現(xiàn)工廠(chǎng)產(chǎn)量監(jiān)控查詢(xún)系統(tǒng)
中達(dá)電通股份有限公司上海機(jī)電業(yè)務(wù)處FAE 李 強(qiáng)
摘 要:某塑膠有限公司是專(zhuān)業(yè)生產(chǎn)手術(shù)等專(zhuān)用手套的億元年產(chǎn)值企業(yè)沪峰。整個(gè)工廠(chǎng)多達(dá)26條生產(chǎn)線(xiàn)爬凑。由于生產(chǎn)產(chǎn)量都是依靠人工進(jìn)行統(tǒng)計(jì)办绝,所以在實(shí)際操作過(guò)程中,出現(xiàn)產(chǎn)品缺失導(dǎo)致投入的原料量和產(chǎn)出的成品量嚴(yán)重失衡熄攘,急需對(duì)整個(gè)工廠(chǎng)的產(chǎn)量進(jìn)行準(zhǔn)確的計(jì)量兽愤,因此項(xiàng)目基于性?xún)r(jià)比極高的臺(tái)達(dá)PLC和組態(tài)王界面軟件成功的開(kāi)發(fā)出產(chǎn)量監(jiān)控查詢(xún)系統(tǒng),得到了客戶(hù)的贊揚(yáng)挪圾。
關(guān) 鍵 字:臺(tái)達(dá)PLC 組態(tài)王 數(shù)據(jù)庫(kù) 數(shù)據(jù)的查詢(xún)打印 報(bào)表組態(tài)
1引言
產(chǎn)量監(jiān)控查詢(xún)系統(tǒng)系統(tǒng)對(duì)整個(gè)工廠(chǎng)所有生產(chǎn)線(xiàn)進(jìn)行實(shí)時(shí)監(jiān)控浅萧,對(duì)每一條生產(chǎn)線(xiàn)的產(chǎn)量進(jìn)行實(shí)時(shí)的存儲(chǔ),存儲(chǔ)的數(shù)據(jù)通過(guò)組態(tài)王連接PLC哲思,將PLC中掉電保持區(qū)的數(shù)據(jù)讀到組態(tài)王自定義的相應(yīng)變量當(dāng)中版挣,每分鐘通過(guò)標(biāo)準(zhǔn)的SQL語(yǔ)言對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)(每分鐘向SQLSERVER數(shù)據(jù)庫(kù)中存儲(chǔ)26條數(shù)據(jù),即26條生產(chǎn)線(xiàn)的當(dāng)前產(chǎn)量)柴羞。用戶(hù)可以通過(guò):日期婆裹、時(shí)間、時(shí)間段稳嘁、車(chē)間乱险、生產(chǎn)線(xiàn)對(duì)任何車(chē)間、任何生產(chǎn)線(xiàn)進(jìn)行產(chǎn)量的查詢(xún)托习;能夠?qū)θ魏诬?chē)間况颈、任何生產(chǎn)線(xiàn)進(jìn)行月產(chǎn)量的統(tǒng)計(jì)。同時(shí)在查詢(xún)出滿(mǎn)足條件的記錄后洗吉,將結(jié)果通過(guò)報(bào)表的組態(tài)顯示在相應(yīng)的表格當(dāng)中勾奇,可以對(duì)該結(jié)果進(jìn)行存儲(chǔ)和打印。
2 系統(tǒng)設(shè)計(jì)
2.1系統(tǒng)框圖
2.2設(shè)備選型設(shè)計(jì)
3 系統(tǒng)分析
3.1功能要求
可以任意查詢(xún)一車(chē)間蔼魁、二車(chē)間任何生產(chǎn)線(xiàn)(共26條生產(chǎn)線(xiàn))任何時(shí)段的產(chǎn)量摆野。具體明
細(xì)如下:
(1)每條生產(chǎn)線(xiàn)產(chǎn)量的數(shù)據(jù)至少能夠保存四個(gè)月的儲(chǔ)存期,以便對(duì)歷史數(shù)據(jù)進(jìn)行查詢(xún)凛驮。
(2)要求能夠查詢(xún)每條生產(chǎn)線(xiàn)任意每月裆站、任意每天、任意每小時(shí)黔夭、任意每分鐘的產(chǎn)量宏胯。
(3)要求能夠?qū)θ我饷織l生產(chǎn)線(xiàn)在任意時(shí)段的產(chǎn)量進(jìn)行查詢(xún)。
(4)查詢(xún)出來(lái)的任何結(jié)果要以特定的格式在報(bào)表中進(jìn)行組態(tài)本姥,同時(shí)將結(jié)果打印肩袍。
(5)各生產(chǎn)線(xiàn)任意每月產(chǎn)量、任意每天產(chǎn)量婚惫、任意每小時(shí)產(chǎn)量氛赐、任意每分鐘產(chǎn)量可以在電腦上用柱狀圖、實(shí)時(shí)趨勢(shì)曲線(xiàn)的形式表現(xiàn)出來(lái)
3.2查詢(xún)方式
(1)能夠按照日期進(jìn)行查詢(xún)(格式:Year/Month/Day)
(2)能夠按照時(shí)間進(jìn)行查詢(xún)(格式:Hour/Minute/Second)
(3)能夠按照生產(chǎn)線(xiàn)進(jìn)行查詢(xún)(一車(chē)間:1-1先舷、1-2艰管;2-1滓侍,2-2;3-1牲芋,3-2撩笆;4-1,4-2情庐;
5-1筷疹,5-2;6-1亏的,6-2咖杉;7-1地混,7-2胆中;8-1,8-2 二車(chē)間:1-1庆牵,1-2橡收;2-1,2-2遏填;3-1配评,3-2;4-1氛赞,4-2再拴,4-3,4-4)
(4)能夠按照任意時(shí)間段進(jìn)行查詢(xún)(格式:Year/Month/Day Hour/Minute/Second To Year/Month/Day/ Hour/Minute/Second)
(5)能夠按照班次進(jìn)行查詢(xún)(格式:早班赔癌,中班诞外,晚班)早班:7:30—15:30
中班:15:30—23:30 晚班:23:30—7:30
(6)能夠查詢(xún)?nèi)我饷吭氯我廛?chē)間、任意生產(chǎn)線(xiàn)的產(chǎn)量
(7)能夠運(yùn)用<1>——<5>的各種不同的排列組合進(jìn)行復(fù)雜的查詢(xún)
4難點(diǎn)及實(shí)現(xiàn)方法
4.1 海量數(shù)據(jù)管理
兩個(gè)車(chē)間共26條生產(chǎn)線(xiàn)灾票,每分鐘要有26條記錄生成峡谊,每分鐘向數(shù)據(jù)庫(kù)插入26條記錄。
該系統(tǒng)全天24小時(shí)工作刊苍,不允許停既们。所以一天的數(shù)據(jù)量為37440條記錄。每月的數(shù)據(jù)量為1160640條記錄正什。如果要存儲(chǔ)四個(gè)月啥纸,則數(shù)據(jù)量為4642260條記錄。數(shù)據(jù)量是相當(dāng)龐大的婴氮。硬盤(pán)的數(shù)據(jù)存儲(chǔ)接近2-3G脾拆,不僅會(huì)造成在查詢(xún)時(shí),系統(tǒng)資源嚴(yán)重被占用莹妒,同時(shí)普通的數(shù)據(jù)庫(kù)如ACCESS的表格沒(méi)有能力管理如此龐大的數(shù)據(jù)系統(tǒng)名船。ACCESS在管理如此龐大的數(shù)據(jù)時(shí)绰上,不僅系統(tǒng)會(huì)造成不穩(wěn)定,同時(shí)會(huì)出現(xiàn)不可預(yù)料的情形返乏。所以只能尋找能夠管理大型數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫(kù)框抽,因此可以選擇SQLSERVER或Oracle。
4.2 基于WindowsXP創(chuàng)建SQL服務(wù)器的新數(shù)據(jù)源
組態(tài)王支持對(duì)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的插入香诽、選擇绵扇、刪除等基本的操作。同時(shí)支持標(biāo)準(zhǔn)的SQL語(yǔ)言庐丁。靈活的運(yùn)用組態(tài)王提供的SQL函數(shù)使組態(tài)王通過(guò)ODBC(開(kāi)放性的數(shù)據(jù)源)配合標(biāo)準(zhǔn)的SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種簡(jiǎn)單和復(fù)雜的操作仓煌。
在Win2000/Winnt/Winxp等操作系統(tǒng)下,必須正確的進(jìn)行設(shè)置:從控制面板中
雙擊性能和維護(hù)榨凭,如圖3所示熔徊。以WindowsXP為例說(shuō)明。
第一步:在控制面板下選擇 管理工具->ODBC數(shù)據(jù)源郑迅,雙擊圖標(biāo)出現(xiàn)圖2界面朽晓。
第二步:在用戶(hù)DSN 選項(xiàng)卡片上,單擊添加按鈕令聂,出現(xiàn) 創(chuàng)建新數(shù)據(jù)源 對(duì)話(huà)框方仿,選擇SQL Server(圖3)。
第三步:?jiǎn)螕舻诙降耐瓿砂粹o统翩,出現(xiàn)創(chuàng)建到SQL Server的新數(shù)據(jù)源仙蚜。如圖4所示。
輸入數(shù)據(jù)源名稱(chēng)厂汗、數(shù)據(jù)源描述和SQL Server 所在的服務(wù)器名稱(chēng)或者IP地址委粉。服務(wù)器名稱(chēng)可以是SQL Server所在的機(jī)器名稱(chēng),也可以是IP地址面徽。單擊下一步按鈕艳丛。
第四步:選擇登錄SQL Server時(shí)的身份驗(yàn)證方式。并輸入登錄SQL Server時(shí)所用到的用戶(hù)名和密碼趟紊。如圖5所示氮双。
這里的用戶(hù)名和密碼是在SQL Server中建立的。在SQL Server數(shù)據(jù)庫(kù)中選擇 安全性->登錄霎匈,新建用戶(hù)戴差,如圖6所示。
第五步:一定要選擇"更新默認(rèn)的數(shù)據(jù)庫(kù)為"選項(xiàng)铛嘱,否則默認(rèn)數(shù)據(jù)庫(kù)是master暖释。然后選擇您想要連接的數(shù)據(jù)庫(kù)。其余的按默認(rèn)設(shè)置波烘,如圖7所示在摔。然后單擊下一步按鈕骏疆。
第六步:按默認(rèn)設(shè)置,單擊完成按鈕(圖8)唤吐。
第七步:圖9給出了數(shù)據(jù)庫(kù)連接的摘要信息潜佑,如果想測(cè)試一下是否能夠連接到數(shù)據(jù)庫(kù),可以單擊“測(cè)試數(shù)據(jù)源”按鈕诫幼,會(huì)出現(xiàn)測(cè)試結(jié)果镐准。
單擊確定完成連接。接下來(lái)的工作就是在組態(tài)王王建立記錄體翅殃、表格模板诈金。其中連接數(shù)據(jù)庫(kù)的時(shí)候,一定要輸入和剛才數(shù)據(jù)源名稱(chēng)一致的DSN臊娩。如 dsn = wuhandsn.
4.3 表格名稱(chēng)創(chuàng)新
即使使用大型的數(shù)據(jù)庫(kù)拐棺,SQL Server或Oracle,由于每天的數(shù)據(jù)量多達(dá)37440條記錄图云,
如果將一個(gè)月惯悠,甚至是四個(gè)月的記錄全部寫(xiě)入同一個(gè)數(shù)據(jù)庫(kù)的同一個(gè)表格邻邮,則所有的數(shù)據(jù)量大的將使表格崩潰竣况,即使數(shù)據(jù)庫(kù)能夠管理,查詢(xún)的速度也是可想而知的筒严。將會(huì)非常的慢丹泉。經(jīng)過(guò)作者反復(fù)的思索,想出了一個(gè)巧妙的辦法鸭蛙,就是以系統(tǒng)的日期作為當(dāng)天的表格名稱(chēng)摹恨。當(dāng)系統(tǒng)時(shí)間為00:00:00時(shí)刻時(shí),新建一個(gè)表格娶视,通過(guò)SQLCreateTable( DeviceID, "TableName", "TemplateName" )函數(shù)建立不同的表格晒哄。因?yàn)榻M態(tài)王支持字符串函數(shù),如下所示:
StrASCII( Char );// 此函數(shù)返回某一指定的文字變量首字符的ASCII值
StrChar( ASCII );// 此函數(shù)返回某一指定ASCII碼所對(duì)應(yīng)的字符
StrFromInt( Integer, Base );// 此函數(shù)將一整數(shù)值轉(zhuǎn)換為另一進(jìn)制下的字符串表示
StrFromReal( Real, Precision, Type );// 此函數(shù)將一實(shí)數(shù)值轉(zhuǎn)換成字符串形式
StrFromTime( SecsSince1-1-70, StringType );// 此函數(shù)將一個(gè)時(shí)間值轉(zhuǎn)換為字符串
StrInStr( Text, SearchFor, StartPos, CaseSens );// 此函數(shù)用于查找文本
StrLeft( Text, Chars );// 此函數(shù)返回指定文字變量的開(kāi)始(或最左的)若干個(gè)字符
StrLen( Text );// 此函數(shù)返回某一指定的文字變量的長(zhǎng)度
StrLower( Text );// 此函數(shù)將指定文字中的所有大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母
StrMid( Text, StartChar, Chars );// 此函數(shù)從指定的位置開(kāi)始肪获,從一個(gè)文字變量中返回指定個(gè)數(shù)的字符
StrReplace( Text, SearchFor, ReplaceWith, CaseSens, NumToReplace, MatchWholeWords );
//此函數(shù)替換或改變所提供字符串的指定部分
StrRight( Text, Chars );// 此函數(shù)返回指定文字變量的最末端(或最右)若干個(gè)字符
StrSpace( NumSpaces );// 此函數(shù)在文字變量中或表達(dá)式中產(chǎn)生一個(gè)空格串
StrToInt( Text );// 此函數(shù)在文字變量中或表達(dá)式中產(chǎn)生一個(gè)空格串
StrToReal( Text );// 此函數(shù)將一個(gè)由數(shù)字組成的字符串轉(zhuǎn)換成一個(gè)能用于數(shù)字計(jì)算的實(shí)數(shù)值
StrTrim( Text, TrimType );// 此函數(shù)刪除文字變量中無(wú)用的空格
StrType( Text, TestType );// 此函數(shù)檢測(cè)文字變量的首字符以確定其是否為某一類(lèi)型
StrUpper( Text );// 此函數(shù)將一指定文字變量中所有的小寫(xiě)字符轉(zhuǎn)換成大寫(xiě)字符
在組態(tài)王中建立內(nèi)存型字符變量NameTable="A"+StrFromInt( \\本站點(diǎn)\$年, 10)+StrFromInt( \\本站點(diǎn)\$月, 10)+StrFromInt( \\本站點(diǎn)\$日, 10);NameTable的構(gòu)成為字母A+系統(tǒng)日期寝凌。將系統(tǒng)提供的整型變量轉(zhuǎn)換成字符型變量。這樣可以在數(shù)據(jù)庫(kù)中建立每天的表格孝赫。每當(dāng)系統(tǒng)日期由23:59:59跳變到00:00:00時(shí)央颈,執(zhí)行SQLCreateTable()函數(shù),建立當(dāng)天的表格岗制,如圖10所示械耙,在SQL Server中組態(tài)王建立了A2006619日的表格。
4.4 基于Active控件的組態(tài)王條件查詢(xún)
為了完成如此復(fù)雜的查詢(xún)刷男,使用了Active控件袖蝙,因?yàn)榻M態(tài)王支持第三方控件搪狈,將所有的條件羅列出來(lái)進(jìn)行排列組合,將每一種情況都考慮在內(nèi)羊耸。然后通過(guò)程序來(lái)實(shí)現(xiàn)選擇條件轉(zhuǎn)換成SQLSELECT()函數(shù)工作的條件封豆。
(1)任意查詢(xún)?nèi)我馍a(chǎn)線(xiàn)在任意時(shí)段的產(chǎn)量。因?yàn)楣に囈竽軌蛉我獠樵?xún)?nèi)我馍a(chǎn)線(xiàn)在任意時(shí)段的產(chǎn)量胸立,為了能夠?qū)崿F(xiàn)該功能恢憋,新建\\本站點(diǎn)\CX_Hour,\\本站點(diǎn)\CX_Minute绷觉,\\本站點(diǎn)\CX_Hour1鄙荚,\\本站點(diǎn)\CX_Minute1變量。在以時(shí)間段進(jìn)行查詢(xún)時(shí)傲茄,先將以前兩個(gè)變量輸入的時(shí)間做為條件進(jìn)行查詢(xún)毅访,將查詢(xún)出記錄的數(shù)據(jù)賦給在過(guò)程中自定義的中間變量。然后再以后兩個(gè)變量輸入的時(shí)間為條件進(jìn)行查詢(xún)盘榨,將查詢(xún)出的結(jié)果同樣賦給自定義的中間變量喻粹。將兩次查詢(xún)的結(jié)果求差然后,將日期草巡,時(shí)間守呜,車(chē)間,生產(chǎn)線(xiàn)山憨,產(chǎn)量通過(guò)報(bào)表的組態(tài)添到表格當(dāng)中查乒。
(2)對(duì)于月產(chǎn)量的查詢(xún)。需要判斷輸入的月份有幾天郁竟,然后從該月的第一天開(kāi)始到最后一天進(jìn)行查詢(xún)玛迄,查詢(xún)的時(shí)刻為每一天的23:59分時(shí)各生產(chǎn)線(xiàn)的產(chǎn)量。然后對(duì)查詢(xún)出的數(shù)據(jù)進(jìn)行累加棚亩,直到該月的最后一天蓖议,然后按照特定的格式將數(shù)據(jù)填寫(xiě)到報(bào)表當(dāng)中。在該過(guò)程中需要靈活的運(yùn)用循環(huán)語(yǔ)句:While{}以及深刻的體會(huì)組態(tài)王的變量與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換的過(guò)程腹瞒。
查詢(xún)的條件比較復(fù)雜毁几,有些條件不能同時(shí)成立,因此在選擇條件時(shí)锁龙,應(yīng)該要互相限制殷淮,以避免出現(xiàn)混亂的現(xiàn)象。具體的程序在應(yīng)用程序命令語(yǔ)言運(yùn)行時(shí)寫(xiě)如下程序:
//String Systime=StrFromInt(\\本站點(diǎn)\$時(shí),10 )+":"+StrFromInt(\\本站點(diǎn)\$分,10 );
//===================判斷 早班,中班,晚班和查詢(xún)的時(shí)段===================================
String Timestr=StrFromInt( \\本站點(diǎn)\$時(shí), 10 )+StrFromInt( \\本站點(diǎn)\$分, 10 );
Long Timereal=StrToInt( Timestr );
if(Timereal>=730)
{ if(Timereal<=1530)
\\本站點(diǎn)\班次1="早班"; }
if(Timereal>1530)
{ if(Timereal<=2330)
\\本站點(diǎn)\班次1="中班"; }
if(Timereal>2330)
{ if(Timereal<=2359)
\\本站點(diǎn)\班次1="晚班"; }
if(Timereal>=0)
{ if(Timereal<730)
\\本站點(diǎn)\班次1="晚班"; }
\\本站點(diǎn)\日期=\\本站點(diǎn)\$日期;
\\本站點(diǎn)\時(shí)間=StrFromReal( \\本站點(diǎn)\$時(shí), 0, "f" )+":"+StrFromReal( \\本站點(diǎn)\$分, 0, "f" );
if(CommFine1)
{ CommText1="通訊失敗!";}
else
{ CommText1="通訊正常!";}
if(CommFine2)
{ CommText2="通訊失敗!";}
else
{ CommText2="通訊正常!";}
//===================統(tǒng)計(jì)月產(chǎn)量時(shí)腺拗,查詢(xún)報(bào)表的個(gè)數(shù)計(jì)算====================
if(\\本站點(diǎn)\MonthInput==1){ \\本站點(diǎn)\DayNumber=31;}
if(\\本站點(diǎn)\MonthInput==2){ \\本站點(diǎn)\DayNumber=28;}
if(\\本站點(diǎn)\MonthInput==3){ \\本站點(diǎn)\DayNumber=31;}
if(\\本站點(diǎn)\MonthInput==4){ \\本站點(diǎn)\DayNumber=30;}
if(\\本站點(diǎn)\MonthInput==5){ \\本站點(diǎn)\DayNumber=31;}
if(\\本站點(diǎn)\MonthInput==6){ \\本站點(diǎn)\DayNumber=30;}
if(\\本站點(diǎn)\MonthInput==7){ \\本站點(diǎn)\DayNumber=31;}
if(\\本站點(diǎn)\MonthInput==8){ \\本站點(diǎn)\DayNumber=31;}
if(\\本站點(diǎn)\MonthInput==9){ \\本站點(diǎn)\DayNumber=30;}
if(\\本站點(diǎn)\MonthInput==10){ \\本站點(diǎn)\DayNumber=31;}
if(\\本站點(diǎn)\MonthInput==11){ \\本站點(diǎn)\DayNumber=30;}
if(\\本站點(diǎn)\MonthInput==12){ \\本站點(diǎn)\DayNumber=31;}
//=================月產(chǎn)量查詢(xún)的條件限定===================
if(Check6)
{ Check1=0;Check2=0;Check3=0;Check4=0;Check5=0;}
//==================查詢(xún)時(shí)間和時(shí)間段不能同時(shí)有效===================
if(\\本站點(diǎn)\Check2)
{\\本站點(diǎn)\Check3=0;Check1=1;}
if(\\本站點(diǎn)\Check3)
{\\本站點(diǎn)\Check2=0;Check1=1;Check6=0;}
//====================插入表格的名稱(chēng)======================
NameTable="A"+StrFromInt( \\本站點(diǎn)\$年, 10)+StrFromInt( \\本站點(diǎn)\$月, 10)+StrFromInt( \\本站點(diǎn)\$日, 10);
<7>.工藝要求能夠查詢(xún)?nèi)我馍a(chǎn)線(xiàn)每分鐘的產(chǎn)量两靖,所以通過(guò)事件發(fā)生命令語(yǔ)言實(shí)現(xiàn)。每當(dāng)系統(tǒng)時(shí)間的秒等于59時(shí)困碰,觸發(fā)執(zhí)行如下程序耍俱。該部分的程序如下:
//==========================向數(shù)據(jù)庫(kù)插入數(shù)據(jù)============================
long ih=1;
車(chē)間=1;
//SQLInsertPrepare( DeviceID, NameTable, "bind", SQLHandle);
while(ih<=16)
{ if(ih==1) {產(chǎn)量=Fir_NO1;生產(chǎn)線(xiàn)="1-1";} if(ih==2) {產(chǎn)量=Fir_NO2;生產(chǎn)線(xiàn)="1-2";} if(ih==3){產(chǎn)量=Fir_NO3;生產(chǎn)線(xiàn)="2-1";} if(ih==4) {產(chǎn)量=Fir_NO4;生產(chǎn)線(xiàn)="2-2";} if(ih==5) {產(chǎn)量=Fir_NO5;生產(chǎn)線(xiàn)="3-1";} if(ih==6){產(chǎn)量=Fir_NO6;生產(chǎn)線(xiàn)="3-2";}
if(ih==7) {產(chǎn)量=Fir_NO7;生產(chǎn)線(xiàn)="4-1";} if(ih==8) {產(chǎn)量=Fir_NO8;生產(chǎn)線(xiàn)="4-2";} if(ih==9){產(chǎn)量=Fir_NO9;生產(chǎn)線(xiàn)="5-1";} if(ih==10) {產(chǎn)量=Fir_NO10;生產(chǎn)線(xiàn)="5-2";} if(ih==11) {產(chǎn)量=Fir_NO11;生產(chǎn)線(xiàn)="6-1";} if(ih==12){產(chǎn)量=Fir_NO12;生產(chǎn)線(xiàn)="6-2";}
if(ih==13) {產(chǎn)量=Fir_NO13;生產(chǎn)線(xiàn)="7-1";} if(ih==14) {產(chǎn)量=Fir_NO14;生產(chǎn)線(xiàn)="7-2";} if(ih==15){產(chǎn)量=Fir_NO15;生產(chǎn)線(xiàn)="8-1";} if(ih==16) {產(chǎn)量=Fir_NO16;生產(chǎn)線(xiàn)="8-2";}
// \\本站點(diǎn)\序號(hào)=\\本站點(diǎn)\序號(hào)+1;
SQLInsert( DeviceID,NameTable, "bind" );
//SQLInsertExecute( DeviceID, "bind", SQLHandle);
ih=ih+1;
}
long jh=1;
車(chē)間=2;
while(jh<=10)
{
if(jh==1) {產(chǎn)量=Sec_NO1;生產(chǎn)線(xiàn)="1-1";} if(jh==2) {產(chǎn)量=Sec_NO2;生產(chǎn)線(xiàn)="1-2";} if(jh==3){產(chǎn)量=Sec_NO3;生產(chǎn)線(xiàn)="2-1";} if(jh==4) {產(chǎn)量=Sec_NO4;生產(chǎn)線(xiàn)="2-2";} if(jh==5) {產(chǎn)量=Sec_NO5;生產(chǎn)線(xiàn)="3-1";} if(jh==6){產(chǎn)量=Sec_NO6;生產(chǎn)線(xiàn)="3-2";}
if(jh==7) {產(chǎn)量=Sec_NO7;生產(chǎn)線(xiàn)="4-1";} if(jh==8) {產(chǎn)量=Sec_NO8;生產(chǎn)線(xiàn)="4-2";} if(jh==9){產(chǎn)量=Sec_NO9;生產(chǎn)線(xiàn)="4-3";} if(jh==10) {產(chǎn)量=Sec_NO10;生產(chǎn)線(xiàn)="4-4";}
//\\本站點(diǎn)\序號(hào)=\\本站點(diǎn)\序號(hào)+1;
SQLInsert( DeviceID,NameTable, "bind" );
//SQLInsertExecute( DeviceID, "bind", SQLHandle);
jh=jh+1;
}
//SQLInsertEnd( DeviceID, SQLHandle);
(3)在系統(tǒng)時(shí)間等于00:00:00時(shí)刻時(shí)尽瑰,在事件命令語(yǔ)言中建立如下程序,以得到需要新建表格的名稱(chēng)馒脏,同時(shí)將PLC中累計(jì)產(chǎn)量的寄存器清零奠拢,重新開(kāi)始對(duì)該日的產(chǎn)量進(jìn)行累計(jì)。
5 調(diào)試過(guò)程
因?yàn)閮蓚€(gè)車(chē)間之間的距離在300m左右歌淹,而從第一個(gè)車(chē)間到監(jiān)控室的距離有500m左右瘟则,距離比較遠(yuǎn),為了遏制信號(hào)的衰減枝秤,將信號(hào)線(xiàn)用網(wǎng)線(xiàn)代替醋拧,同時(shí)加中繼器,將信號(hào)放大淀弹。保證數(shù)據(jù)傳輸?shù)陌踩缘ず尽R蟋F(xiàn)場(chǎng)布線(xiàn)時(shí)嚴(yán)格按照電氣規(guī)范施工。保證安裝的合格薇溃。正確的設(shè)置操作系統(tǒng)中數(shù)據(jù)源ODBC的選項(xiàng)菌赖,以保證組態(tài)王能夠通過(guò)ODBC與數(shù)據(jù)庫(kù)SQL Server連接。在組態(tài)王運(yùn)行系統(tǒng)中執(zhí)行任何操作時(shí)沐序,觀(guān)察運(yùn)行反饋信息琉用,以得到相關(guān)的錯(cuò)誤信息。根據(jù)提示的錯(cuò)誤信息檢查程序薄啥。報(bào)表的組態(tài)非常靈活辕羽,可以通過(guò)While{}循環(huán)語(yǔ)句逛尚,將查詢(xún)結(jié)果按照順序填寫(xiě)到報(bào)表中垄惧。靈活的運(yùn)用While{}語(yǔ)句同時(shí)能夠?qū)⒊绦蚝?jiǎn)化,減少組態(tài)王后臺(tái)運(yùn)行程序的時(shí)間街赊。靈活的運(yùn)用應(yīng)用程序命令語(yǔ)言搜计、數(shù)據(jù)改變命令語(yǔ)言、事件命令語(yǔ)言娘介、熱鍵命令語(yǔ)言杉藐、按鈕的彈起、按住用载、按下命令語(yǔ)言進(jìn)行編程攒置。在程序量非常大的項(xiàng)目中,養(yǎng)成良好的編程習(xí)慣披蚕。定義變量時(shí)最好使用英文尖坦,這樣能夠增加程序的可讀性。同時(shí)對(duì)程序進(jìn)行標(biāo)注讹渴。
程序畫(huà)面設(shè)計(jì)參見(jiàn)圖11装屈、圖12怒晕、圖13。
7 結(jié)束語(yǔ)
盡管臺(tái)達(dá)的PLC屬于小型PLC路学,但可靠的性能嚼吞,支持485通訊等特點(diǎn),同樣能夠完成集中控制的功能蹬碧。同時(shí)配合組態(tài)軟件舱禽,一樣能夠?qū)崿F(xiàn)復(fù)雜的工廠(chǎng)監(jiān)控、數(shù)據(jù)查詢(xún)恩沽、打印呢蔫、報(bào)表等DCS系統(tǒng)的功能。篇幅有限飒筑,歡迎讀者聯(lián)系作者深入交流片吊。
聲明:本網(wǎng)站所收集的部分公開(kāi)資料來(lái)源于互聯(lián)網(wǎng),轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享协屡,并不代表本站贊同其觀(guān)點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)俏脊,也不構(gòu)成任何其他建議。本站部分作品是由網(wǎng)友自主投稿和發(fā)布肤晓、編輯整理上傳爷贫,對(duì)此類(lèi)作品本站僅提供交流平臺(tái),不為其版權(quán)負(fù)責(zé)补憾。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻惯篇、圖片、文字如涉及作品版權(quán)問(wèn)題忱厨,請(qǐng)第一時(shí)間告知辱囤,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國(guó)家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容,以保證您的權(quán)益鲤瞪!聯(lián)系電話(huà):010-58612588 或 Email:editor@mmsonline.com.cn牢介。
- 暫無(wú)反饋
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力,智啟未來(lái)新篇章
- 定義制造業(yè)未來(lái)的數(shù)控加工中心技術(shù)專(zhuān)題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專(zhuān)題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專(zhuān)題
- 精密智能機(jī)床睛至,助力制造升級(jí)技術(shù)專(zhuān)題
- 汽車(chē)輕量化驅(qū)動(dòng)下的零部件加工應(yīng)用專(zhuān)題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專(zhuān)題
- 航空航天發(fā)動(dòng)機(jī)解決方案專(zhuān)題
- 高效齒輪加工生產(chǎn)技術(shù)方案專(zhuān)題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專(zhuān)題