Датчиклар


unit Comm; interface uses



Download 38,99 Mb.
bet50/82
Sana16.04.2022
Hajmi38,99 Mb.
#557890
1   ...   46   47   48   49   50   51   52   53   ...   82
Bog'liq
Датчиклар китоб охирги

unit Comm;
interface
uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Forms;
type
TCommEvent = procedure(Sender: TObject; Data: Char) of object;
TCommErrEvent = procedure(Sender: TObject; Error: Integer) of object;
TComm = class(TComponent)
private
Wnd: HWND;
DCB: TDCB;
CommID: Integer;
Buf: Array[0..2048] of char;
NumChars: Integer;
FOnCommErr: TCommErrEvent;
FOnCommRecvd: TCommEvent;
procedure CommWndProc(var Message: TMessage);
public
function Send(data: Char): Boolean;
function Connect: Boolean;
constructor Create(AOwner: TComponent); override;
Destructor destroy; override;
published
Property OnCommErr: TCommErrEvent read FOnCommErr write FOnCommErr;
Property OnCommRecvd: TCommEvent read FOnCommRecvd write FOnCommRecvd;
end;
procedure Register;
implementation
constructor
TComm.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Wnd := AllocateHwnd(CommWndProc);
end;
procedure TComm.CommWndProc(var Message: TMessage);
var
Error, count: Integer;
Stat: TComStat;
begin
if Message.Msg = WM_COMMNOTIFY then
begin
Message.Result := 0;
GetCommEventMask(CommId, $3fff);
NumChars := ReadComm(CommID, @Buf, 2048);
Error := GetCommError(CommId, Stat);
if Error = 0 then
begin
if Assigned(FOnCommRecvd) then
begin
for count := 0 to NumChars-1 do
FOnCommRecvd(Self, Buf[count]);
end; end else
begin
if Assigned(FOnCommErr) then
begin
FOnCommErr(Self, Error);
end; end; end; end;
function TComm.Send(data: Char): Boolean;
var
Error: Integer;
begin
Error := TransmitCommChar(CommId, data);
if Error < 0 then
Result := False
else
Result := True;
end;
function TComm.Connect: Boolean;
var
Config : array[0..20] of Char;
begin
CommId := OpenComm('COM2', 2048, 2048);
StrCopy(Config, 'com2:96,n,8,1');
BuildCommDCB(Config, DCB);
DCB.ID := CommId;
SetCommState(DCB);
EnableCommNotification(CommID, Wnd, 1, -1);
SetCommEventMask(CommId, ev_RXChar);
Result := True;
end;
DestructorTComm.destroy;
begin
CloseComm(CommID);
DeallocateHwnd(Wnd);
Inherited destroy;
end;
procedureRegister;
begin
RegisterComponents('Samples', [TComm]);
end;
end.
4.3. Техно-FBD ва Техно-IL дастурлаш тиллари. Функционал блоклар тиллари
ТРЕЙС МОУДда ахборотлар оқими каналлар ёрдамида созланади. Каналларнинг тип, ички тип ва бошқа характеристикаларини манбалар ёки берилганларни қабулқилгич белгилаб беради. (контроллерлар, УСО платлар, масофадаги тугунлар, система ўзгарувчилари ва бошқалар).
Каналларда бошланғич ва чиқишда малумотларни қайта ишлаш кўзда тутилган. Қолган барча қайта ишлаш ва бошқариш амаллари алохида дастурлар кўринишида ишлаб чиқилади. Бунинг учун Техно FBD ва Техно IL тилларидан фойдаланилади. Улар МЭК-1131 стандартини жорий қилади ва кўпгина қўшимча функцияларга эга.
Техно FBD тили алгаритмларни функциянал блокли диаграммалар кўринишида ишлаб чиқишга мўлжалланган. Унда дастур тузиш канал процедураларидан келиб чиқади.
Техно IL да дастурлар инструкциялар кетма-кетлиги кўринишида тузилади. Бу тил Техно FBD тилига функционал блокларни дастурлаш ва база канлларни хисобга олган холда паралел ишга тушириладиган метопрограммалар яратиш имконини беради.
ТРЕЙС МОУД да ишлатилган дастурлаш тилларига бағишланган. У икки бўлимга эга.
Функционал блоклар тили
Қўлланма тили
Биринчи бўлимда гап Техно FBD тили хақида боради. Бунда FBD дастурларни яратиш, тахрирлаш ва откладка қилиш масалалари кўриб чиқилади. Шу бўлимни ўзида ҳамма стандарт функциянал блоклар ва улар ишлатадиган алгоритимларнинг берилишилари келтирилади.

Иккинчи бўлим Техно IL тилига бағишланган. Бўлим берилган тилнинг асосий маъносини хамда IL- дастурларни яратиш қурилмалари, тахрирлаш ва откладка қилишларни ўз ичига олаган. Бу ерда IL- дастурларни функционал блоклар ёки метапрограммлар кўринишида тизимга улаш ва ишлаб чиқиш кўриб чиқилади.





Download 38,99 Mb.

Do'stlaringiz bilan baham:
1   ...   46   47   48   49   50   51   52   53   ...   82




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish