999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

過(guò)程自動(dòng)化MES系統(tǒng)中報(bào)文的處理方法

2019-09-09 08:14:53王崢牛盂杰張瑩李曉東
數(shù)碼世界 2019年5期

王崢 牛盂杰 張瑩 李曉東

摘要:論述了一種MES中報(bào)文的處理方法,包括報(bào)文封裝類設(shè)計(jì),通訊接口設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)等內(nèi)容。描述了.net框架下端口監(jiān)聽及stream流傳輸?shù)某绦蛟O(shè)計(jì)方法。

關(guān)鍵詞:mes 報(bào)文 socket 端口監(jiān)聽 stream流

本文闡述了一種基于socket協(xié)議的MES二級(jí)系統(tǒng)報(bào)文的處理方法。報(bào)文是MES系統(tǒng)普遍采用的信息傳輸方式,具有組成靈活,傳輸可控,解讀方便的特點(diǎn)。設(shè)計(jì)報(bào)文的處理方式,是MES系統(tǒng)重要的組成部分。本項(xiàng)目是一個(gè)鍍錫線電控系統(tǒng)的MES二級(jí)子系統(tǒng)運(yùn)行穩(wěn)定,傳輸可靠。在此簡(jiǎn)單闡述—下報(bào)文的處理方法。

報(bào)文處理方法包含以下幾個(gè)主要環(huán)節(jié)

1,定義鋼卷鋼種數(shù)據(jù)信息PDI,此類主要用于生成報(bào)文的各種參數(shù)。報(bào)文處理需要的元素,都封裝成類,再進(jìn)行實(shí)例化調(diào)用,這樣程序的代碼重用及組裝都很方便。

public class PDI

{

public int flag{ get; set;}∥鋼種標(biāo)志

public int ID{ get; set;}∥鋼種ID

public string Schedule_Code{ get; set;}∥計(jì)劃代碼

private string _coil_no一…I;∥私有變量卷號(hào)

pulolic string Coil_NO∥對(duì)私有變量的getter和setter操作

{

get

{

if (!string.IsNullOrEmpty(_coil_no》

return _coil_no.ToUpper();

else

return””:

l

set{ _coil_no - value;}

}

public string Schedule_Type{ get; set;}//,//各種鋼卷屬性的操作方法

public string RepairFlag{ get; set;)

public string Repair_Type{ get; set;}

public int IsDummy{ get; set;}

}

2,報(bào)文定義類,此處定義報(bào)文封裝類,包括各種操作屬性,比如ID,生產(chǎn)線代碼,請(qǐng)求時(shí)間,回應(yīng)時(shí)間,狀態(tài),發(fā)送目標(biāo),回答目標(biāo),報(bào)文主體內(nèi)容等。此報(bào)文將進(jìn)入報(bào)文池,以隊(duì)列方式,先進(jìn)入池的報(bào)文,被先處理發(fā)送。

public class DBMAILBOX

{

public int ID{ get; set;}∥///報(bào)文隊(duì)列代碼

public int Plant_ID{ get; set;}

public int RequestNo{ get; set;}

public DateTime RequestDate{ get; set;}

public DateTime ReplyDate{ get; set;}

public int Status{ get; set;}

public string SendTo{ get; set;}

public string ReplyTo{ get; set;}

public int IDM{ get; set;}廠/∥報(bào)文標(biāo)志代碼

public byte[l Msg{ get; set;}////報(bào)文內(nèi)容

publicbyte[l MsgReply{ get; set;}

}

3,組合報(bào)文體框架,此處生成報(bào)文體對(duì)象,根據(jù)報(bào)文種類(即IDM報(bào)文標(biāo)志),調(diào)用對(duì)應(yīng)的報(bào)文生成方法,返回報(bào)文內(nèi)容,與其他屬性構(gòu)成報(bào)文主體,進(jìn)入數(shù)組,形成報(bào)文隊(duì)列。

DBMAILBOX m—new DBMAILBOX();/////報(bào)文對(duì)象

m.Plant_ID -0;

m.IDM -2965;∥/∥//新生成的報(bào)文為2965

m.Msg—msg.MSG2965(p,setup);/‘∥//報(bào)文生成方法,返回報(bào)文內(nèi)容

m.SendTo -”L1C”;/////////報(bào)文發(fā)送屬性

m.RequestDate - DateTime.Now;

m.Reply_Date - DateTime.Now;

m.ReplyTo -llL2Serverll;

m。Status -0:

mail.Add(m);////////把報(bào)文內(nèi)容加入數(shù)組mail,形成報(bào)文隊(duì)列。

4,組合報(bào)文體,此處形成報(bào)文內(nèi)容,不含其它屬性,只是整個(gè)報(bào)文.dlomailbox的msg部分,也就是向一級(jí)系統(tǒng)實(shí)際發(fā)送的報(bào)文內(nèi)容。

public Byte[]MSG2965(int intMSGPORl, intintMSGPOR2)///////

{

this.MSG_ID - 2965;////報(bào)文ID

this.MSG_I。EN—l6;///////報(bào)文長(zhǎng)度,第一次賦值,作用是電文體開始賦值的位置,2965電文的卷號(hào)的開始位置為16,下面的循環(huán)中,根據(jù)this.MSG_I。EN的初始值,開始給電文體賦值,MSGLEN也不斷增加

this.SetString(p.Coil_NO,20,l l,0);///////向電文體寫入string

str - DoString.toLongString(str, len,f,itype);////DoString是靜態(tài)類,將str補(bǔ)充到len長(zhǎng)度(不

足時(shí)),此時(shí)str是Coil_NO卷號(hào),保證卷號(hào)長(zhǎng)度固定

//////以下是報(bào)文各段屬性賦值,簡(jiǎn)略

this.SetSwapValue《Int16)intMSGPORl);/////向電文體寫入開卷機(jī)請(qǐng)求數(shù)據(jù)l

this. SetSwapValue《Int16)intMSGPOR2);/////向電文體寫入開卷機(jī)請(qǐng)求數(shù)據(jù)2

return this.GetBytes();/////加上報(bào)上報(bào)頭head(最終調(diào)用sethead0方法),形成最終報(bào)文體

}

5,socket端口監(jiān)聽類。本項(xiàng)目采用socket方式接收和發(fā)送電文,通過(guò)不同端口進(jìn)行收發(fā),提高了報(bào)文處理速度。利用.NET框架的socket封裝類,簡(jiǎn)化了程序代碼。采用多線程方式,對(duì)收發(fā)動(dòng)作進(jìn)行新建線程方式,實(shí)現(xiàn)并發(fā)處理。.NET框架用IPEndPoint對(duì)象來(lái)表示一個(gè)特定的IP地址和端口的組合,應(yīng)用該對(duì)象的場(chǎng)景多是在將socket綁定到本地地址。

∥接收來(lái)自L1-級(jí)系統(tǒng)的報(bào)文

public class MsgFromLI:ThreadService////建立線程

{

public ThreadStatus status—null;

TcpListener server=null;///////定義監(jiān)聽類的對(duì)象

IPEndPoint ipLocalEndPoint=null;

pulolic MsgFromLl()///構(gòu)造函數(shù),進(jìn)行初始化,建立監(jiān)聽通道

{

ipLocaIEndPoint - newIPEndPoint(IPAddress.Parse("10.36.1.225"), 3001);

//∥監(jiān)聽一級(jí)系統(tǒng)PLC的ip和端口

status—new ThreadStatus();////建立線程狀態(tài)對(duì)象

public void Start0

{

status.run_flag - true;

server - new TcpListener(ipLocalEndPoint);//,//監(jiān)聽類實(shí)例化

server. Start();//∥啟動(dòng)監(jiān)聽

status.starttime - DoDateTime.getNovrString();

TcpClient client—null;

while (status.run_flag)

{

if (client一一null』!client.Connected)

{

client - server.AcceptTcpClient();////開始接收請(qǐng)求

client.ReceiveBufferSize -2016;/∥//接收緩沖區(qū)長(zhǎng)度

}

client.ReceiveBufferSize - 2016;

ByteLl bytes - new Byte[client.ReceiveBufferSizel;//接收?qǐng)?bào)文的字符串初始化

NetworkStream stream — client.GetStream();/∥//建立stream流,進(jìn)行傳輸

stream.Read(bytes,O,bytes.Length);////讀入stream流數(shù)據(jù)進(jìn)入字符串

client. Close();

client—null;

}

}

}

6,發(fā)送報(bào)文

public void Start0

{

status.run_flag - true;

status.start_time - DoDate-Fime.getNo.nrString();

string rernoteIP~"10.36.1.135";////socket客戶端連接遠(yuǎn)程服務(wù)器地址

int remotePort - 3003;

string localIP一"10.36.1.225";

int localPort - 2003;

MSGTcpClient client - nevr MSGTcpClient(localIP. localPort, remoteIP, remotePort);

DBMAILBOX msg—new DBMAILBOX();

while (status.run_flag)

{

if(! client. Connect(》/////client初始化要建立連接

{

Thread.Sleep(2000);

continue:

}

msg -Scan();//∥//msg存人掃描的信息結(jié)果,形成電文

msg.Status一1;∥∥/msg不為空

client.SendOnce(msg.Msg.0,2016);//,//發(fā)送電文,

∥∥/上面msg -Scan();//∥//IIlsg存入掃描的信息結(jié)果,形成電文

}

}

發(fā)送動(dòng)作語(yǔ)句

public Boolean SendOnceCoyte[l buffer .int offset,int size)

{

stream一client.GetStream();//

∥返回用于發(fā)送和接收數(shù)據(jù)的System.Net.Sockets.NetworkStream。

stream.Write(buffer, offset.slze);//∥向stream的對(duì)端發(fā)出數(shù)據(jù)

return true;

}

主站蜘蛛池模板: 在线观看国产小视频| 污污网站在线观看| 精品成人免费自拍视频| 日本精品视频一区二区| 欧美亚洲综合免费精品高清在线观看| 欧美精品一区在线看| 国产一级裸网站| 东京热一区二区三区无码视频| 人人看人人鲁狠狠高清| 欧美一区二区三区欧美日韩亚洲| 国产欧美视频在线| 99热这里只有精品免费国产| 日本道综合一本久久久88| 国产精品美女自慰喷水| 国产亚洲高清视频| 国产亚洲精品自在久久不卡| 日韩高清在线观看不卡一区二区| 免费不卡视频| 国产99在线| 国产在线拍偷自揄观看视频网站| 少妇极品熟妇人妻专区视频| 在线另类稀缺国产呦| 国产精品一区在线观看你懂的| 久久精品免费看一| 日本成人不卡视频| 新SSS无码手机在线观看| 欧美特黄一免在线观看| 狼友视频国产精品首页| 国产午夜无码专区喷水| 成人福利在线视频免费观看| 欧类av怡春院| 嫩草国产在线| 无码国产偷倩在线播放老年人 | 免费又黄又爽又猛大片午夜| 欧美在线网| 啪啪免费视频一区二区| 真人高潮娇喘嗯啊在线观看| 99热免费在线| 欧美成人午夜视频免看| 最新国产午夜精品视频成人| 国产人妖视频一区在线观看| 国产成人亚洲无吗淙合青草| 免费无码AV片在线观看国产| 高清欧美性猛交XXXX黑人猛交| 日韩av资源在线| 中美日韩在线网免费毛片视频| 欧美综合激情| 最新国语自产精品视频在| 69av免费视频| 制服丝袜国产精品| 成人久久精品一区二区三区| 亚洲欧美成人在线视频| 日本国产精品一区久久久| 国产99视频精品免费视频7| 色噜噜综合网| 在线国产欧美| 亚洲二区视频| www.91中文字幕| 黄色成年视频| 亚洲va视频| 午夜精品区| 国产区91| 国产成人精品一区二区三区| 全色黄大色大片免费久久老太| 欧美另类精品一区二区三区| 国产91视频免费| 精品福利视频网| 再看日本中文字幕在线观看| 国内99精品激情视频精品| 最新精品国偷自产在线| 秋霞午夜国产精品成人片| 伊人中文网| 国产精品va| 欧美精品色视频| 国产精品亚洲精品爽爽| 最新日本中文字幕| 第九色区aⅴ天堂久久香| 亚洲欧美不卡视频| 亚洲男女在线| 色窝窝免费一区二区三区| 国产精品第一区在线观看| 国产91九色在线播放|