Различия
Здесь показаны различия между двумя версиями данной страницы.
doc:visscada:visscada_sidebar_zdvatm_pas [2021/11/05 18:17] denis создано |
doc:visscada:visscada_sidebar_zdvatm_pas [2021/11/05 18:20] (текущий) denis |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== _prjprocs.pas ====== | + | ====== SidebarZdvaTm.pas ====== |
+ | |||
+ | <file pascal SidebarZdvaTm.pas> | ||
+ | unit SidebarZdvaTm; | ||
+ | |||
+ | interface | ||
+ | |||
+ | uses | ||
+ | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, | ||
+ | StdCtrls, ScadaBase, VisMachine, VisMchb, ExtCtrls,jpeg, SimpleLine, VisButton, | ||
+ | Buttons, VisNumericPanel, VisZdva, VisMcha, VisDataboard, VisLabel, VisControl; | ||
+ | |||
+ | type | ||
+ | TSidebarZdvaTmForm = class(TForm) | ||
+ | numTime: TVisNumericPanel; | ||
+ | VisButton1: TVisButton; | ||
+ | VisButton2: TVisButton; | ||
+ | VisButton3: TVisButton; | ||
+ | VisButton4: TVisButton; | ||
+ | VisButton5: TVisButton; | ||
+ | DatPanel: TPanel; | ||
+ | Panel1: TPanel; | ||
+ | btAuto: TVisButton; | ||
+ | btOff: TVisButton; | ||
+ | btDir1: TVisButton; | ||
+ | btDir2: TVisButton; | ||
+ | pnlName: TPanel; | ||
+ | btBlok: TVisButton; | ||
+ | SostPanel1: TPanel; | ||
+ | brdSost: TVisDataboard; | ||
+ | btParams: TBitBtn; | ||
+ | Label1: TLabel; | ||
+ | Label2: TLabel; | ||
+ | Label3: TLabel; | ||
+ | Label4: TLabel; | ||
+ | Label5: TLabel; | ||
+ | Label6: TLabel; | ||
+ | Label7: TLabel; | ||
+ | procedure FormActivate(Sender: TObject); | ||
+ | procedure brdSostProcess(Sender: TObject); | ||
+ | procedure btBlokClick(Sender: TObject); | ||
+ | procedure btControlClick(Sender: TObject); | ||
+ | procedure pnlNameClick(Sender: TObject); | ||
+ | procedure btParamsClick(Sender: TObject); | ||
+ | procedure TimeControlClick(Sender: TObject); | ||
+ | procedure numTimeClick(Sender: TObject); | ||
+ | procedure VisButton3Click(Sender: TObject); | ||
+ | private | ||
+ | public | ||
+ | zdva: TVisZdva; | ||
+ | end; | ||
+ | |||
+ | |||
+ | implementation | ||
+ | uses | ||
+ | TrendWindow, | ||
+ | MesLogging, | ||
+ | Numbers, | ||
+ | MesConst, | ||
+ | Sidebar, | ||
+ | TagStorage, | ||
+ | RpVisualGlobal, | ||
+ | RpVisualLegacyPanels, | ||
+ | RpVisualUtils, | ||
+ | RpVisualMain; | ||
+ | |||
+ | {$R *.dfm} | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.FormActivate(Sender: TObject); | ||
+ | begin | ||
+ | zdva := TVisZDVA(getSidebarObject); | ||
+ | |||
+ | pnlName.Caption := zdva.DeviceName; | ||
+ | brdSost.Caption := zdva.DeviceName; | ||
+ | |||
+ | brdSost.Process; | ||
+ | end; | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.brdSostProcess(Sender: TObject); | ||
+ | var | ||
+ | sost: Integer; | ||
+ | s: string; | ||
+ | begin | ||
+ | s := ''; | ||
+ | case brdSost.Tags[0].value of | ||
+ | 0: s := zdva.StateMid + ' (жду '+zdva.StateClose+')'; | ||
+ | 4: s := zdva.StateMid + ' (жду '+zdva.StateOpen+')'; | ||
+ | 1: s := zdva.StateClose; | ||
+ | 6: s := zdva.StateOpen; | ||
+ | 5: s := zdva.StateClose + ' (жду '+zdva.StateOpen+')'; | ||
+ | 2: s := zdva.StateOpen + ' (жду '+zdva.StateClose+')'; | ||
+ | 3,7: s := 'Ошибка'; | ||
+ | 8: s := 'Адрес'; | ||
+ | end; | ||
+ | brdSost.objLabel.Caption := s | ||
+ | end; | ||
+ | |||
+ | |||
+ | procedure TSidebarZdvaTmForm.btBlokClick(Sender: TObject); | ||
+ | begin | ||
+ | with Sender as TVisButton do | ||
+ | SaveMessageText(mcBlok_text, zdva.DeviceName, Hint + ' = ' + iif(objButton.Down, 'Выкл', 'Вкл'), mcBlok_bc, mcBlok_fc); | ||
+ | end; | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.btControlClick(Sender: TObject); | ||
+ | begin | ||
+ | with sender as TVisButton do | ||
+ | SaveMessageText('Изменение положения задвижки', zdva.DeviceName, Hint + ' = ' + CaptionDown, mcMode_bc, mcMode_fc); | ||
+ | end; | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.TimeControlClick(Sender: TObject); | ||
+ | begin | ||
+ | with sender as TVisButton do | ||
+ | SaveMessageText('Изменение положения задвижки', zdva.DeviceName, Hint, mcMode_bc, mcMode_fc); | ||
+ | end; | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.pnlNameClick(Sender: TObject); | ||
+ | begin | ||
+ | ShowTrendWindow( | ||
+ | zdva.DeviceName, | ||
+ | GetTagName( brdSost.tags[0].idx), | ||
+ | '', | ||
+ | 'zdva_', | ||
+ | '', | ||
+ | 'Состояние: '#13+ | ||
+ | '0 - '+zdva.StateMid+' (жду '+zdva.StateClose+')'#13+ | ||
+ | '1 - '+zdva.StateClose+' '#13+ | ||
+ | '2 - '+zdva.StateOpen+' (жду '+zdva.StateClose+')'#13+ | ||
+ | '3 - ошибка '#13+ | ||
+ | '4 - '+zdva.StateMid+' (жду '+zdva.StateOpen+')'#13+ | ||
+ | '5 - '+zdva.StateClose+' (жду '+zdva.StateOpen+')'#13+ | ||
+ | '6 - '+zdva.StateOpen+' '#13+ | ||
+ | '7 - ошибка '#13+ | ||
+ | '8 - неправильный адрес' | ||
+ | ); | ||
+ | end; | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.btParamsClick(Sender: TObject); | ||
+ | begin | ||
+ | brdSost.OnControlClick(sender); | ||
+ | end; | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.numTimeClick(Sender: TObject); | ||
+ | begin | ||
+ | with sender as TVisNumericPanel do | ||
+ | SaveMessageText(mcParam_text, zdva.DeviceName, | ||
+ | Hint + ' = ' + objPanel.Caption, mcParam_bc, mcParam_fc); | ||
+ | |||
+ | end; | ||
+ | |||
+ | procedure TSidebarZdvaTmForm.VisButton3Click(Sender: TObject); | ||
+ | begin | ||
+ | with Sender as TVisButton do | ||
+ | SaveMessageText(mcParam_text, zdva.DeviceName, | ||
+ | Hint + ' = ' + iif(objButton.Down, 'Выкл', 'Вкл'), mcParam_bc, mcParam_fc); | ||
+ | end; | ||
+ | |||
+ | end. | ||
- | <file pascal _prjprocs.pas> | ||
</file> | </file> |