المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : langage C


mafia03
2011-03-22, 18:23
من فظلكم عندي مجموعة برامج بلغة c ولم افهم منها شيء فمن هو متخصص بهذه اللغة ارجو ان يفيدني...
/************************************************** **************************
* This program initialise generate the common alarms for the Gas Alarm Systems
*
* | ALW_ON +--------------+
* +----| |------| CALL GCMNALM |--
* | | (EXTERNAL) |
* | +--------------+
*
* %R3000 No. of Horners RTU Module (Max=6)
* %R3001 Loop 1 - MSByte= Chassis, LSByte=Slot
* %R3002 Loop 1 - Last Addr Installed Devices (Start MODBUS Address = Node 2)
* %R3003 Loop 2 - MSByte= Chassis, LSByte=Slot
* %R3004 Loop 2 - Last Addr Installed Devices (Start MODBUS Address = Node 2)
* %R3005 Loop 3 - MSByte= Chassis, LSByte=Slot
* %R3006 Loop 3 - Last Addr Installed Devices (Start MODBUS Address = Node 2)
* %R3007 Loop 4 - MSByte= Chassis, LSByte=Slot
* %R3008 Loop 4 - Last Addr Installed Devices (Start MODBUS Address = Node 2)
* %R3009 Loop 5 - MSByte= Chassis, LSByte=Slot
* %R3010 Loop 5 - Last Addr Installed Devices (Start MODBUS Address = Node 2)
* %R3011 Loop 6 - MSByte= Chassis, LSByte=Slot
* %R3012 Loop 6 - Last Addr Installed Devices (Start MODBUS Address = Node 2)

* %R199 - Common Alarm Reg
* bit 0 - Gas Alarm High
* bit 1 - Gas Alarm High High
* bit 2 - Gas Fault
*
* %R201 - Gas Detector Reading Node 1
* %R202 - Gas Detector Reading Node 2
* ...
*
************************************************** ****************************/

#include "plcc9030.h"
EXE_stack_size = 2048;

#define CFG_REG 3000 // Start of Configuratio Registers
#define NO_LOOP (CFG_REG+0) // No of Active Loops
#define NO_GD (CFG_REG+2) // No of Gas Detectors in Loop
#define GD_CMNALM 199 // Common Alarm Register

#define PLC_FLTREG 200

#define GD_REG 201 // %R201 Starting of GD Registers
#define GD_MAXADR 32 // Maximum Addr = 32 GD in loop
#define GD_LOOPMAX 6 // Maximum of 6 Loops


void main(void)
{
word i,j, LastAdr, GasH, GasHH, GasF;

GasHH = 0;
for (i=0; i<RW(NO_LOOP); i++) {
LastAdr = RW(NO_GD+i*2);
for (j=2; j<=LastAdr; j++) {
if (RI((j-1) + GD_REG + i*GD_MAXADR)>= -13108) { // 50%
GasHH = 1;
break;
}
}
if (GasHH) break;
}
if (GasHH)
RW(GD_CMNALM) |= 0x0002;
else
RW(GD_CMNALM) &= 0xfffd;


GasH=0;
for (i=0; i<RW(NO_LOOP); i++) {
LastAdr = RW(NO_GD+i*2);
for (j=2; j<=LastAdr; j++) {
if ((RI((j-1) + GD_REG + i*GD_MAXADR)>= -23594) && // 10%
(RI((j-1) + GD_REG + i*GD_MAXADR)< -13108) ) {// 50%
GasH = 1;
break;
}
}
if (GasH) break;
}
if (GasH)
RW(GD_CMNALM) |= 0x0001;
else
RW(GD_CMNALM) &= 0xfffe;

GasF=0;
for (i=0; i<RW(NO_LOOP); i++) {
LastAdr = RW(NO_GD+i*2);
for (j=2; j<=LastAdr; j++) {
if (RI((j-1) + GD_REG + i*GD_MAXADR) < -30278) { // Cal & Fault
GasF = 1;
break;
}
}
if (GasF) break;
}
if (RW((PLC_FLTREG)) !=0) GasF=1;


if (GasF)
RW(GD_CMNALM) |= 0x0004;
else
RW(GD_CMNALM) &= 0xfffb;
}

mafia03
2011-03-23, 15:21
20 مشاهدة ولا يوجد رد واحد...... أين المقيمين على هذا القسم

fatimazahra2011
2011-03-26, 19:18
http://dc05.arabsh.com/i/00952/b5b02kife019.gif


http://dc05.arabsh.com/i/00952/yc5ywckos6qb.gif



(http://www.djelfa.info/vb/member.php?u=196927)http://www.mza3et.com/up/uploads/images/mza3et.com-cf85c187ee.gif (http://www.djelfa.info/vb/member.php?u=196927)

http://www.upgulf.com/GIF/9gA41101.gif (http://www.djelfa.info/vb/member.php?u=196927)


http://dc05.arabsh.com/i/00952/35ceukuyl160.gif


http://dc05.arabsh.com/i/00952/ul6xwbf2o26o.gif (http://www.djelfa.info/vb/member.php?u=196927)




http://hani.mnshi.googlepages.com/thiatyall.gif (http://www.djelfa.info/vb/member.php?u=196927)


http://i29.tinypic.com/909ldu.gif (http://www.djelfa.info/vb/member.php?u=196927)

marter north london
2011-07-16, 16:03
ya akhi had le progremme c copmliqué j'ai rien compris

شهاب88
2011-07-16, 16:15
هذا البرنامج يستعمل لتوليد الإنذارات مشتركة للغاز (نظام انذار)
إذا كنت مبتدأ فعليك بالبرامج البيسطة (إذا كنت تريد مساعدة فانا جاهز )