📄 commut.cpp
字号:
void sendto(int realqd,int to)
{
unsigned num,table,n,bytes=256;
int s,err;
float *v;
int *st;
int i,logicqd;
if(to>31||to<0) return;
if(realqd>=100) return;
logicqd=qdmap(realqd);
if(qztp[logicqd]==9||qztp[logicqd]==42){
s=1; // float
table=realqd*bytes;
num=channelnum(logicqd);
n=num*4;
v=&idcbv[logicqd]; //idcbv[]: temp var
for(i=0;i<3;i++){
idcbwr(&to,&s,&table,&n,&v[1],&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
/* s=0; // float
table=frqd*bytes+num*4;
n=num;
st=&idcbst1[frqd]; //idcbst1[]: temp var
for(i=0;i<3;i++){
idcbwr(&to,&s,&table,&n,&st[1],&err);
if(err==0) break;
}*/
}
if(qztp[logicqd]==FDCSD1){
s=0; // float
table=realqd*bytes;
n=channelnum(logicqd);
st=&idcbst1[logicqd]; //idcbst1[]: temp var
for(i=0;i<3;i++){
idcbwr(&to,&s,&table,&n,&st[1],&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
s=2; // float
table=realqd*bytes+n;
st=&idcbst1[logicqd]; //idcbst1[]: temp var
for(i=0;i<3;i++){
idcbwr(&to,&s,&table,&n,&st[1],&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
}
}
void moveqd(int computer,int to)
{
unsigned table,n;
int s,err;
int v;
int *st;
int i;
if(to>31||to<0) return;
if(computer>=30) return;
s=0; // int
table=computer*100+30000;
n=2;
v=1;
for(i=0;i<3;i++){
idcbwr(&to,&s,&table,&n,&v,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
}
int channelnum(int qdha)
{
int num;
if(qztp[qdha]==9) /* 模拟量前置机 1B 型 */
num=a1b_num; /* 模拟量 1B 型机测点的个数 */
else if(qztp[qdha]==42) /* 模拟量前置机 4B 型 */
num=a4b_num; /* 模拟量 4B 型机测点的个数 */
else if(qztp[qdha]==FDCSD1) /* 模拟量前置机 2B 型 */
num=s2b_num; /* 开关量 2B 型机测点的个数 */
return(num);
}
int qdmap(int realqd)
{
int log;
log=realqd-glha*10;
if(log>=0&&log<=10) return(log);
else return(-1);
/* {
printf("The Address Error!");
exit(0);
}*/
}
void xzbsend(int glha,int to)
{
APS *app;
float ff,xzbval[50];
float *xzb;
int number,i;
unsigned table,n;
int s,err;
int flag=8;
s=0; // int flag
table=0x1000*glha;
n=2;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&flag,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
xzb=&xzbval[0];
if(xzb_num>50) xzb_num=50;
for (i=1;i<=xzb_num;i++) { //xzb_num read from "small.dbf"
number=xzbseq[i]; /* 第 i 点小指标在测点库中的顺序 */
app=(APS *)psptr[number]; /* app=第 i 点指针 */
// printf("xzb:n%d %Fp",number,app);
if(app->st>=0) { /* 正常状态 */
ff=app->av;
}
else {
ff=-9999.0; /* 不正常的值 */
}
*xzb++=ff;
}
s=1; // float
table=0x1000*glha+4;
n=xzb_num*4;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&xzbval[0],&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
}
void tbsend(int to)
{
APS *app;
float ff;
float *tmp,hourtb[150];
int number,i;
unsigned table,n;
int s,err;
int flag=6;
s=0; // int flag
table=0x1000*glha+0x300;
n=2;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&flag,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
tmp=&hourtb[0];
for (i=0;i<totalpoints;i++) { /* totalpoints 个测点 */
app=(APS *)psptr[i+1]; /* app=第 i 点指针 */
if(app->st>=0) /* 状态正常 */
*tmp++=app->av;
else
*tmp++=-9999.0; /* 状态不正常,记录一个坏数据标记*/
}
s=1; // float
table=0x1000*glha+0x304;
n=totalpoints*4;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&hourtb[0],&err);
if(err==0) break;
else while(timenum%5==0) break;
}
}
void hissend(float hisav,int hisst,int to)
{
int i;
unsigned table,n;
int s,err;
int flag=3;
s=0; // int flag
table=0x1000*glha+0x600;
n=2;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&flag,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
s=1; // float
table=0x1000*glha+0x604;
n=4;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&hisav,&err);
if(err==0) break;
else while(timenum%5==0) break;
}
s=0; // float
table=0x1000*glha+0x604+4;
n=2;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&hisst,&err);
if(err==0) break;
else while(timenum%5==0) break;
}
}
void yxsend(struct YX yx,int to)
{
int number,i;
unsigned table,n;
int s,err;
int flag=5;
/*struct YX { // 越限点的结构
char pn[8]; // 测点序
char time1[18]; // 越限起始时间. 95/07/20 08:52:45
char time2[18]; // 越限终止时间. 95/07/20 08:55:20
float max_val; // 越限期间的最大值
float min_val; // 越限期间的最小值
};*/
s=0; // int flag
table=0x1000*glha+0x200;
n=2;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&flag,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
s=3; // char
table=0x1000*glha+0x204;
n=8;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&yx.pn,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
s=3; // char
table=0x1000*glha+0x204+8;
n=18;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&yx.time1,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
s=3; // char
table=0x1000*glha+0x204+8+18;
n=18;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&yx.time2,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
s=1; // float
table=0x1000*glha+0x204+8+18+18;
n=1;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&yx.max_val,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
s=1; // float
table=0x1000*glha+0x204+8+18+18+4;
n=1;
for(i=0;i<4;i++){
idcbwr(&to,&s,&table,&n,&yx.min_val,&err);
if(err==0) break;
else while((timenum%6)==0) break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -