
第一次 :n-- 为6n使用时是5 --n为4;
第二次 :n-- 为4n使用时晌没是3 --n为2;
第三次 :n-- 为2n使用时是1 --n为0;
从第一次循环中我们得到打印的结果每次-2,循环三次,所以结果为420
15 b==c中的==为判断符号,其结果只有两种0或1,条件成立返回1,不成则立毕薯返回0
16 x为二维数组
| 0 1 2 |
| 3 4 5 |
| 6 7 8 |
其for 循环的结果为0,1,2所以其取值为x[0][2],x[1][1],x[2][0],结果就是246
1.程序设计大家在做程序设计的时候要根据系统的控制要求,采用合适的设计方法来设计三菱PLC程序。程序要以满足系统控制薯闹要求为主线,逐一编写实现各控制功能或各任务的程序,逐步完善系统指定的功能。除此之外,程序通常还应包括以下内容:
1)初始化程序。在三菱PLC上电后,一般都要做一些初始化的 *** 作,为启动作必要的准备,避免系统发生误动作搜手散。初始化程序的主要内容有:对某些数据区、计数器等进行清零,对某些数据世氏区所需数据进行恢复,对某些继电器进行置位或复位,对某些初始状态进行显示等等。
2)检测、故障诊断和显示等程序。这些程序相对独立,一般在程序设计基本完成时再添加。
3)保护和连锁程序。保护和连锁是程序中不可缺少的部分,必须认真加以考虑。它可以避免由于非法 *** 作而引起的控制逻辑混乱。
2. 程序模拟调试
程序模拟调试是以方便的形式模拟产生现场实际状态,为程序的运行创造必要的环境条件。模拟调试有硬件模拟法和软件模拟法两种形式。
1)硬件模拟法是使用一些硬件设备模拟产生现场的信号,并将这些信号以硬接线的方式连到PLC系统的输入端,其时效性较强。
2)软件模拟法是在三菱PLC中另外编写一套模拟程序,模拟提供现场信号,其简单易行,但时效性不易保证。模拟调试过程中,可采用分段调试的方法,并利用编程器的监控功能。
#include<stdio.h>#include<stdlib.h>
#define MAX 100
struct addr{
char name[30]
char street[40]
char city[20]
char state[3]
unsigned long int zip
}add_list[MAX]
void init_list(void),enter(void)
void delete(void),list(void)
void load(void),save(void)
int menu_select(void),find_free(void)
int main(void)
{
char choice
init_list()/咐侍*initialize the structure array*/
for(){
choice=menu_select()
switch(choice){
case 1:enter()
break
case 2:delete()
break
case 3:list()
break
case 4:save()
break
case 5:load()
break
case 6:exit(0)
}
}
return 0
}
/*Initialize the list*/
void init_list(void)
{
register int t
for(t=0t<MAX++t)
add_list[t].name[0]='0'咐橘
}
/*Get a menu selection*/
int menu_select(void)
{
char s[80]
int c
printf("1.Enter a name\n")
printf("2.Delete a name\n")
printf("3.List the file\n")
printf("4.Save the file\n")
printf("5.Load the file\n")
printf("6.Quit\n")
do{
printf("\nEnter your choice:")
gets(s)
c=atoi(s)
}while(c<0||c>6)
return c
}
/*Input addresses into the list*/
void enter(void)
{
int slot
char s[80]
slot=find_free()
if(slot==-1){
printf("\nList Full")
return
}
printf("Enter name:")
gets(add_list[slot].name)
printf("Enter street:"衡简吵)
gets(add_list[slot].street)
printf("Enter city:")
gets(add_list[slot].city)
printf("Enter state:")
gets(add_list[slot].state)
printf("Enter zip:")
gets(s)
add_list[slot].zip=strtoul(s,'\0',10)
}
/*Find an unused structure*/
int find_free(void)
{
register int t
for(t=0add_list[t].name[0]&&t<MAX++t)
if(t==MAX)
return -1/*no slots free*/
return t
}
/*Delete an address*/
void delete(void)
{
register int slot
char s[80]
printf("enter record # :")
gets(s)
slot=atoi(s)
if(slot>=0&&slot<MAX)
add_list[slot].name[0]='\0'
}
/*Display the list on the screen*/
void list(void)
{
register int t
for(t=0t<MAX++t){
if(add_list[t].name[0]){
printf("%s\n",add_list[t].name)
printf("%s\n",add_list[t].street)
printf("%s\n",add_list[t].city)
printf("%s\n",add_list[t].state)
printf("%s\n",add_list[t].zip)
}
}
printf("\n\n")
}
/*Save the list*/
void save(void)
{
FILE *fp
register int i
if((fp=fopen("maillist","wb"))==NULL)
printf("Cannot open file\n")
return
for(i=0i<MAXi++)
if(*add_list[i].name)
if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1)
printf("File write error\n")
fclose(fp)
}
/*Load the file*/
void load(void)
{
FILE *fp
register int i
if((fp=fopen("maillist","rb"))==NULL){
printf("Cannot open file\n")
return
}
init_list()
for(i=0i<MAXi++)
if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1){
if(feof(fp))break
printf("File read error\n")
}
fclose(fp)
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)