亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? unmain.pas

?? OPC 源程序示例
?? PAS
字號(hào):
unit UnMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,comobj,OPCtypes,OPCDA, OPCutils,OPCDataCallback,OPCAdviseSink,ActiveX, StdCtrls, Buttons,
  ComCtrls, Menus, ExtCtrls, TeEngine, Series, TeeProcs, Chart, DbChart,
  DB, ADODB,ShellAPI, Grids, DBGrids, DBTables, CheckLst, GridsEh, DBGridEh,
  PrnDbgeh, DBSumLst,report1;

const
   ServerProgIDWincc = 'OPCServer.WinCC';
   RPC_C_AUTHN_LEVEL_NONE = 1;
   RPC_C_IMP_LEVEL_IMPERSONATE = 3;
   EOAC_NONE = 0;

   OneSecond = 1 / (24 * 60 * 60);
   MY_MESSAGE =WM_USER + 100;
type
  TMain = class(TForm)
    Button2: TButton;
    StatusBar1: TStatusBar;
    BExit: TButton;
    Button3: TButton;
    Label2: TLabel;
    Timer1: TTimer;
    Button4: TButton;
    DataSource1: TDataSource;
    PrintDBGridEh1: TPrintDBGridEh;
    ADOT_OneTimeDataValues: TADOTable;
    ADOT_TagName: TADOTable;
    ADOConnection1: TADOConnection;
    DBSumList1: TDBSumList;
 //   procedure Timer1Timer(Sender: TObject);
 //   procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure BExitClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    procedure OnIconNotify(var Message:TMessage);message MY_MESSAGE;
    { Private declarations }
  public
    procedure LinkOPCServer(); //連接OPC服務(wù)器函數(shù)
    procedure AddGroup();      //添加組函數(shù)
    procedure AddWinccOPCItem();       //添加項(xiàng)目
 //   procedure AddKepServerItem();       //添加項(xiàng)目
    procedure SyncreadTagValue(); //同步讀取項(xiàng)目值函數(shù)
 //   procedure SyncWriteTagValue(); //同步寫(xiě)入項(xiàng)目值函數(shù)
 //   procedure SyncReadTagValueSP();
    { Public declarations }
  end;

var
  Main: TMain;
  serverWinccOPC:iopcserver;

  groupNo :array of iopcitemmgt;
  grouphandleNo :array of opchandle;
  
  //groupif:iopcitemmgt;
  groupWinccOPC:iopcitemmgt;
  grouphandle:opchandle;           //添加組句柄
  // 可考慮定義為數(shù)組型變量,便于處理多個(gè)組分類(lèi)

  ItemType:TVarType;
  VT_EMPTY: TVarType;               //項(xiàng)的類(lèi)型(返回值)
  //Item0Handle:opchandle;            //添加項(xiàng)返回句柄 (返回值)
  Item0HandleCuteOPC_RD:opchandle;
  Item0HandleCuteOPC_WR:opchandle;


  itemvalue:string;                 //項(xiàng)的值  (設(shè)定或返回值)
  ItemQuality:word;                 //項(xiàng)質(zhì)量 (返回值)

  OPCDataCallback: IOPCDataCallback;    //回調(diào)函數(shù)定義
  AsyncConnection: Longint;

  ppErrors:PResultList;               //返回結(jié)果 (返回值)
  Hr:HResult;                        //函數(shù)返回狀態(tài)句柄
  //CuitOPC變量
  aRdTagItemHandle,aWrTagItemHandle :array of DWORD;
  aRdTagName,aWrTagName :array of string;    //定義讀全局標(biāo)簽變量數(shù)組
  dRdTagNameValue,dWrTagNameValue :array of Real;
  iRdTagNumber,iWrTagNumber :Integer;
  abcflower :array of Real;

  bShowMain : boolean;  //是否顯示主窗口
  iwritenumber :Integer;
implementation

{$R *.dfm}

//連接OPCServer//
procedure TMain.LinkOPcServer();
begin

  //*********連接CuteOPC Server***********//
  try
    serverWinccOPC :=CreateComObject(ProgIDToClassID(ServerProgIDWincc)) as IOPCServer;
    //serverWinccOPC :=CreateRemoteComObject('ZJXTZ-SGJ',ProgIDToClassID(ServerProgIDWincc)) as IOPCServer;
  except
    serverWinccOPC := nil;
  end;
  if serverWinccOPC = nil then
  begin
    showmessage(' NO!!! 不能連接WinCCOPC服務(wù)器,連接失敗');
  end
  else
    //showmessage(' OK !!! 連接WinCCOPC服務(wù)器成功,連接成功');


end;


//********添加組過(guò)程********/////
procedure TMain.AddGroup();
var
  gstrCu,grtrKep :String;
begin
  gstrCu:='GRPCU'; //自己定義的組名
  grtrKep :='GRPKEP';

  /////////////////
  HR := ServerAddGroup(serverWinccOPC, gstrCu, True, 1000, 0,groupWinccOPC, GroupHandle);  //函數(shù)在OPCutils.pas中
  if not Succeeded(HR) then
  begin
    showmessage(' 添加WinCCOPC組失敗!');
  end
  else
  // showmessage(' 添加WinCCOPC組成功!');
end;


//********添加CuteOPC項(xiàng)目過(guò)程********/////
procedure TMain.AddWinccOPCItem();
var
  sRdItemName :string;
  i :Integer;
  x :word;
begin
   ADOT_TagName.Close;
   ADOT_TagName.Open;
   ADOT_TagName.First;
   iRdTagNumber := ADOT_TagName.RecordCount;
   setLength(aRdTagName,iRdTagNumber);
   setLength(aRdTagItemHandle,iRdTagNumber);
   setLength(dRdTagNameValue,iRdTagNumber);
   for i:=0 to iRdTagNumber-1 do
   begin
     sRdItemName:=trim(ADOT_TagName.Fields[0].AsString);
     aRdTagName[i]:=''''+sRdItemName+'''';
     x:=i;
     HR := GroupAddItem(groupWinccOPC,sRdItemName,x, VT_EMPTY,Item0HandleCuteOPC_RD,ItemType);  //函數(shù)在OPCutils.pas中
     //句柄為dword型,第一個(gè)定義的項(xiàng)句柄為1,依次為2,3……
     aRdTagItemHandle[i] :=Item0HandleCuteOPC_RD;

    //*******每次添加項(xiàng)目后返回其句柄,通過(guò)該句柄讀項(xiàng)目值****//
     if Succeeded(HR) then
     begin
      // showmessage('ok  添加數(shù)據(jù)item成功!');
     end
     else
     begin
       showmessage('標(biāo)簽名" '+sRdItemName+'" 添加失敗!,請(qǐng)檢查該標(biāo)簽名是否正確');
       ServerWinccOPC.RemoveGroup(GroupHandle, False);
       Exit;
     end;
     ADOT_TagName.Next;
   end;
   ADOT_TagName.Close;
end;

//**** 同步讀取WinCC數(shù)據(jù)項(xiàng)數(shù)據(jù)值同寫(xiě)入到Kep Server中****////
procedure TMain.SyncreadTagValue ;
Var
  ith:DWORD;
  i,n:Integer;
  dItemValue :Real;
begin
  ///讀Wincc標(biāo)簽數(shù)據(jù)
  ADOT_OneTimeDataValues.Open;
  ADOT_OneTimeDataValues.Append;
  ADOT_OneTimeDataValues.Fields[0].AsDateTime :=now;
  for i:=0 to iRdTagNumber-1 do
  begin
     ith :=aRdTagItemHandle[i];
     HR := ReadOPCGroupItemValue(GroupWinccOPC, ith,ItemValue, ItemQuality);  //函數(shù)在OPCutils.pas中
     if  Succeeded(HR) then
     begin
       dItemValue :=strToFloat(ItemValue);
       dItemValue :=abs(round(dItemValue));
       n :=i+1;
       ADOT_OneTimeDataValues.Fields[n].AsFloat :=dItemValue;

      { case n of
          1 : Edit1.Text :=FloatToStr(dItemValue);
          2 : Edit2.Text :=FloatToStr(dItemValue);
          3 : Edit3.Text :=FloatToStr(dItemValue);
          4 : Edit4.Text :=FloatToStr(dItemValue);
          5 : Edit5.Text :=FloatToStr(dItemValue);
       end;}
     //if  Succeeded(HR) then
    // begin
       dRdTagNameValue[i]:= dItemValue;
     end
     else
    // begin
        showmessage('標(biāo)簽'+'sTagName[i]'+'SyncreadTagValue同步讀取失敗');
    // end;
  //end;
 end;
 ADOT_OneTimeDataValues.Post;
end;

procedure TMain.FormCreate(Sender: TObject);
var
   NotifyIconData :TNotifyIconData;
   sapplicationpath,MyPassW :String;
begin

   NotifyIconData.cbSize :=sizeof(NotifyIconData);
   NotifyIconData.Wnd :=Handle;
   NotifyIconData.uID :=1000;
   NotifyIconData.hIcon :=Application.Icon.Handle;
   NotifyIconData.szTip :='球團(tuán)豎爐表報(bào)查詢(xún)系統(tǒng)';
   NotifyIconData.uCallbackMessage :=MY_MESSAGE;
   NotifyIconData.uFlags :=NIF_ICON or NIF_TIP or NIF_MESSAGE;
   if not Shell_NotifyIcon(NIM_ADD,@NotifyIconData) then
   begin
      showmessage('Failed');
      Application.Terminate;
   end;

   SetWindowLong
     (
     application.Handle,
     GWL_EXSTYLE,
     WS_EX_TOOLWINDOW
     );
 
   //  Button3Click(Sender);//啟動(dòng)

     bShowMain :=False;
     StatusBar1.Panels[0].Text :='讀取數(shù)據(jù)';
     StatusBar1.Panels[1].Text :='當(dāng)前時(shí)間:'+ DateTimeToStr(now);
     sapplicationpath :=Extractfilepath(paramstr(0));
     MyPassW:='';
   {
     ADOCTagDB.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
                                 sapplicationpath+'tagDB.mdb;Jet OLEDB:Database Password='+
                                 MyPassW+';Persist Security Info=False';
    ADOCTagDB.Connected :=true;
    }
  end;

procedure  TMain.OnIconNotify(var Message:TMessage);
const
    Busy: Boolean=False;
begin

   if not Busy then
   begin
     if Message.LParam =WM_RBUTTONDOWN then
        if Application.MessageBox('要退出系統(tǒng)嗎?','系統(tǒng)提示',MB_YESNO)=IDYES then
        begin
          // Timer1.Enabled :=false;
        //   Timer2.Enabled :=false;
           Application.Terminate;
        end;
     if Message.LParam =WM_LBUTTONDOWN then
     begin
        bShowMain :=True;
        //Main.Show;
        frmreprt1.ShowModal;
     end;
   end;

end;
procedure TMain.FormPaint(Sender: TObject);
begin
  if not bShowMain then
     Hide;
end;

procedure TMain.BExitClick(Sender: TObject);
begin
 //  if Application.MessageBox('確定要退出系統(tǒng)嗎?','系統(tǒng)提示',MB_YESNO)=IDYES then
      //close;
     Hide;
end;

procedure TMain.Button3Click(Sender: TObject);
begin
   LinkOPcServer();
   AddGroup();
   AddWinccOPCItem();
   SyncReadTagValue();
   iwritenumber :=0;
 //  Timer1.Enabled :=true;
  // Timer2.Enabled :=true;
end;

procedure TMain.Timer2Timer(Sender: TObject);
begin
 //  SyncReadTagValueSP();
 //  SyncWriteTagValue();
   StatusBar1.Panels[0].Text :='讀取數(shù)據(jù)';
   StatusBar1.Panels[1].Text :='當(dāng)前時(shí)間:'+ DateTimeToStr(now);
end;

procedure TMain.Timer1Timer(Sender: TObject);
var
  sdatetime,sreadtime :string;
  itime:Integer;
begin
  sdatetime :=timetoStr(time);
  for itime:=0 to 23 do
  begin
    sreadtime :=InttoStr(itime)+':00:00';
    if sdatetime = sreadtime then
    begin
       Button3Click(Sender);
    end;
  end;     
end;

procedure TMain.Button4Click(Sender: TObject);
begin
 frmreprt1.ShowModal;
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类小说图片综合网| 久久老女人爱爱| 麻豆精品精品国产自在97香蕉| 精品对白一区国产伦| 久久精品国产一区二区| 中文一区在线播放| 色综合网站在线| 成人激情综合网站| 亚洲精品国产无套在线观| 777亚洲妇女| 国产曰批免费观看久久久| 亚洲另类在线制服丝袜| 精品久久久久av影院| 99re热这里只有精品视频| 日本强好片久久久久久aaa| 久久新电视剧免费观看| 欧美在线观看一区二区| 国产一区二区不卡在线| 一区二区三区国产| 国产日韩av一区二区| 欧美久久久久中文字幕| 99久久综合精品| 麻豆成人久久精品二区三区红 | 国产三级一区二区| 欧美日韩一级片网站| 国产99久久久国产精品免费看 | 国产偷国产偷精品高清尤物 | 欧美激情资源网| 欧美欧美欧美欧美首页| 91在线视频在线| 精品一区二区三区在线视频| 一区二区久久久久| 国产精品久久久99| 日韩无一区二区| 欧美性受xxxx黑人xyx性爽| 国产99久久久国产精品免费看| 久久先锋影音av| 欧美亚洲综合在线| 色哟哟欧美精品| 99久久精品一区| 成人午夜免费电影| 国产不卡视频在线播放| 久久精品国产一区二区| 图片区日韩欧美亚洲| 亚洲一区二区在线免费观看视频 | 欧美麻豆精品久久久久久| 国产精品自拍av| 免费视频一区二区| 午夜a成v人精品| 香蕉久久夜色精品国产使用方法 | ww亚洲ww在线观看国产| 欧美一区二区三区免费视频| 欧美三级电影在线看| 在线观看日韩av先锋影音电影院| 亚洲va欧美va天堂v国产综合| 日韩欧美一区中文| 91精品国产综合久久福利软件| 久久精品久久久精品美女| 亚洲18女电影在线观看| 一区二区欧美精品| 亚洲午夜激情网页| 天天影视色香欲综合网老头| 亚洲国产精品一区二区久久| 亚洲欧美一区二区视频| 亚洲视频在线一区二区| 亚洲日本中文字幕区| 亚洲色图在线看| 成人欧美一区二区三区白人| 国产精品欧美极品| 亚洲美女电影在线| 国产精品国产三级国产有无不卡| 欧美美女网站色| 日韩欧美国产高清| 国产三级精品三级| 国产精品免费看片| 亚洲欧洲日韩一区二区三区| **网站欧美大片在线观看| 亚洲情趣在线观看| 无码av免费一区二区三区试看| 国产精品麻豆久久久| 1024精品合集| 日韩—二三区免费观看av| 午夜精品久久久久久| 精品一区二区三区免费播放| 国产一本一道久久香蕉| 国内精品第一页| 成人深夜在线观看| 欧美日韩日日骚| 国产精品亲子伦对白| 秋霞成人午夜伦在线观看| 99精品久久99久久久久| 日韩一区二区三区四区五区六区| 69堂精品视频| 国产欧美日产一区| 午夜激情一区二区| 成人app下载| 日韩欧美一卡二卡| 洋洋成人永久网站入口| 国产精品69毛片高清亚洲| 欧美日韩一区不卡| 国产精品家庭影院| 国产一区二区毛片| 日韩丝袜情趣美女图片| 亚洲卡通欧美制服中文| 岛国一区二区三区| 日韩欧美一级在线播放| 亚洲自拍另类综合| 91亚洲国产成人精品一区二区三 | 福利一区二区在线观看| 日韩欧美二区三区| 午夜精品久久久久久久蜜桃app| 午夜精品久久久久久久99水蜜桃 | 激情文学综合网| 欧美日本不卡视频| 夜夜精品视频一区二区| 懂色av噜噜一区二区三区av| 精品国产免费人成电影在线观看四季| 欧美岛国在线观看| 日韩精品一卡二卡三卡四卡无卡| 亚洲成人av福利| 欧美性受极品xxxx喷水| 最好看的中文字幕久久| 国产一区二区三区黄视频 | 日韩视频在线你懂得| 樱桃视频在线观看一区| 99久久精品国产一区二区三区| 欧美在线免费视屏| 综合分类小说区另类春色亚洲小说欧美 | 极品少妇xxxx精品少妇| 91精品国产91热久久久做人人| 亚洲精品一区在线观看| 免费观看在线综合色| 91精品国产综合久久久久久久久久| 精品成人私密视频| 国产一区 二区| 久久天堂av综合合色蜜桃网| 黑人精品欧美一区二区蜜桃 | 亚洲免费成人av| 色综合久久中文综合久久97| 亚洲男女一区二区三区| 91网上在线视频| 亚洲婷婷综合久久一本伊一区| 美女精品一区二区| 久久在线免费观看| 国产精品18久久久久久久久 | 精品国产露脸精彩对白| 国产综合久久久久久久久久久久| 91麻豆国产在线观看| 日韩一区在线看| 日本高清视频一区二区| 亚洲国产婷婷综合在线精品| 欧美日韩一级片在线观看| 免费美女久久99| 国产清纯在线一区二区www| av一区二区三区在线| 一区二区三区四区蜜桃| 91精品国产综合久久久久久漫画 | 亚洲欧洲精品一区二区三区 | 欧美国产丝袜视频| 成人动漫视频在线| 亚洲欧美一区二区三区久本道91 | 视频一区中文字幕| 精品区一区二区| jlzzjlzz欧美大全| 亚洲国产毛片aaaaa无费看| 69久久99精品久久久久婷婷| 国产一区二区久久| 亚洲欧洲精品一区二区精品久久久| 精品一区二区三区在线观看国产 | 久久久国际精品| 99国产精品久| 天天综合色天天| 中文字幕免费一区| 欧美日韩一级大片网址| 国产精一区二区三区| 成人欧美一区二区三区黑人麻豆| 福利一区二区在线| 性做久久久久久免费观看| 久久久精品影视| 欧洲视频一区二区| 国产一区二区美女诱惑| 一区二区三区四区中文字幕| 精品不卡在线视频| 欧美影院午夜播放| 国产在线播放一区三区四| 一区二区成人在线| 久久久www免费人成精品| 在线观看视频一区| 国产盗摄精品一区二区三区在线| 久久亚洲影视婷婷| 色88888久久久久久影院野外| 国产精品不卡在线| 日韩免费视频一区| 日本丶国产丶欧美色综合| 久久99热狠狠色一区二区| 亚洲午夜国产一区99re久久| 久久精品一二三| 日韩三区在线观看| 欧美亚洲另类激情小说| 成人午夜免费电影|