当前位置:文档之家› Fortran输入输出格式控制

Fortran输入输出格式控制

Fortran输入输出格式控制
Fortran输入输出格式控制

Open, Read and Write in Fortran

1:write(*,*)"string";write(unit=*,FMT=*)"string";write(unit=6,FMT=*)"string"。以上等价,6是默认输出位置,即屏幕。

2:print*,"string"。Print只能对屏幕输出。

3:integer(kind=4) a !f90;integer*4 a !f77;integer(4) a !f77。以上等价。

real(kind=4) a !f90;real*4 a !f77;real(4) a !f77。以上等价。

4:f77,变量名长度1~6;f90,变量名长度1~31。

5:read(*,*)"string";write(unit=*,FMT=*)"string";write(unit=5,FMT=*)"string"。以上等价,5是默认输入位置,即键盘。

6:FORMAT

(http://202.118.74.226/fortran/pages/730.htm)

6.1 格式输出

格式输出语句由两部分组成:输出语句和输出格式语句。输出语句的一般形式为:

WRITE(*,L) 输出表列或:PRINT L 输出表列

其中:* 代表隐含的输出设备,L 指输出格式语句的标号。

输出格式语句的一般形式:

L FORMAT(1X,S)

其中:L 输出格式语句的标号,1X 纵向走纸符,S 输出格式,用不同的―格式编辑符‖(简称―编辑符‖)来实现指定的输出格式,各格式间用逗号相隔。

FORMAT语句又叫―格式语句‖,是一个非执行语句,本身不产生任何操作,只是提供输入或输出的格式。FORMAT语句可以出现在程序的任何地方(但必须在PROGRAM语句之后和END语句之前,如果在子程序中用FORMAT语句,则应在子程序定义语句之后)。系统按WRITE语句或PRINT语句中指定的语句标号找到相应的FORMAT语句,并按FORMAT语句所规定的格式对数据进行输出。注意,PRINT语句中不能再用―*‖,PRINT语句中的第一个标识符是语句标号而不是要打印输出的数据。

输出格式分两类基本格式

6.1.1 I格式(又叫整数格式)

一般形式:Iw 或:Iw.m

其中:w 一个数据占的位数宽度(又称―字段宽度‖),m 需要输出的最少数字位数。例1:

WRITE (*,100)M,N

100 FORMAT(1X,I4,I4)

如果M=40,N=-12,则输出如下:

??40 ?-12

例2:

WRITE (* , 100) I,J,K

100 FORMAT(1X,I5.3,I6.3,I4)

若I=1234,J=-24,K=24689 则输出为:

?1234 ???-24 ****

(1)数字在指定的区域内向右端靠齐,如果数字位数比指定的字段宽度w小,则左边补以空格。负数的符号也包含在字段宽度内。

(2)如果数字位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满―*‖符号。

(3)如果数字位数超过了m,则按实际应输出的位数输出(但条件是不能超过w)。m不包括负号所占的一列。

6.1.2 F格式(又叫小数型格式)

一般形式:Fw.d

w 各数值占的总位数d 输出数据的小数位数(小数点后的位数)。例1:WRITE(*,100)A,B,C

100 FORMAT(1X,F10.2,F9.3,F8.4)

若A=1234.56,B=3456.78,C=234.56789 则输出:

???1234.56 ?3456.780 234.5679

例2:WRITE (* , 100) X,Y

100 FORMAT(1X,F10.4,F10.2)

若X=24680135.7, Y=0.0012345,则输出为:

********** ???????.00

(1)数字在指定区域内向右端靠齐,如果数字位数(含小数点和符号位)比指定的字段宽度w小,则左边补以空格;如果数字的位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满―*‖符号。

(2)如果数据的小数位数比指定的小数位数d小,则在小数右边补0以凑足d位;如果小数位数大于d位,则输出时多于的小数位数按―四舍五入‖规则舍去。

(3)假设b为数据整数部分的位数,则应使w≥b+d+1(小数点占一列),如果输出负数,则应保证w≥b+d+2(小数点和负号各占一列)。

(4)用F格式输出时应注意,由于难以事先确切估计出数据的大小,输出大的数时容易产生―宽度不够‖的错误(由于w不够大),输出小的数时会出现丢掉有用数字的情况(由于d不够大而将后面的数字截去),这就是―大数印错,小数印丢‖。

6.1.3 E格式(又叫指数型格式)

一般形式:w.d

w 各数值占的总位数,d 输出数据的小数位数(小数点后的位数)。例1:WRITE (*,100)X,Y

100 FORMAT(1X,E12.4,E12.5 )

如:X=3.17 Y=1234.56 则输出结果为:

??0.3170E+01 ?0.12346E+04。

(1)采取标准化的指数形式输出一个实数,d为以指数形式出现的数据的数字部分的小数位数。

(2)指数部分一般占4列,其中字母―E‖和指数的符号各占一列,指数2列。小数部分d列,再加上一个小数点和小数点前的一个―0‖,因此要保证w≥d+6,输出负数时,w≥d+7。

(3)有的计算机系统允许有较大的实数范围,FORTRAN77提供了一种扩充的编辑符,可以输出三位或四位指数。这种编辑符的形式为:Ew.dEe,用e指定指数的位数。有的计算机系统的FORTRAN编译系统已根据其允许的实数范围,自动将指数的位数改为3位或4位,不必在RORMAT语句中用Ew.dEe编辑符单独为某些数据指定所需的指数位数,只需写Ew.d形式即可,输出时系统会给出三位(或四位)指数。

6.1.4 G格式

G格式可以根据输出的实数大小决定用小数形式(F格式)输出或指数形式(E 格式)输出。当输出大数值或小数值时自动按E格式,当输出的数不大不小时用F格式。其一般形式为:Gw.d

(1)凡绝对值小于0.1的数或绝对值大于10d的数用E格式输出;其余的数用F格式输出。

(2)用E格式输出时,最后4列为指数部分,而用F格式输出时最后4列留空。

(3)用指数形式输出时,格式同Ew.d;用F格式输出时,不是按Fw.d形式输出,d规定的不是小数位数而是打印出来的全部数字的位数,小数位数根据数值大小和d的大小而定,这样做的目的是使数的整数部分能全部保留,而适当截去小数部分,以保证输出数值的正确性。因为小于10d的数,其整数部分最多为d位,因此,可以全部输出这d位整数,小数的位数为:d-(数值整数位数)。

6.1.5 D格式

一般形式:Dw.a

用于双精度数据的输出,使用方法与E格式相仿,只是把字母―E‖换成―D‖。

6.1.6L格式

一般形式:Lw

用于逻辑型数据的输出,w 输出数据的字段宽度。逻辑值―.TRUE.",在输出时打印一个字母T;逻辑值".FLASE.",在输出时打印一个字母F。T和F打印在字段范围内的最右端。

6.1.7 A格式

一般形式:Aw 或:A

用于字符型数据的输出,w为字段宽度,不指定w时(即形式:A),按字符变量的实际长度(即程序定义该变量时的长度)输出。

字符串在指定的区域内向右端靠齐,如果字符串的位数比指定的字段宽度w 小,则左边补以空格;如果字符串的位数超过了规定的字段宽度w,则只输出最左面的w个字符。

6.1.8 ?(撇号)格式

用来插入所需的字符串,例如:

WRITE(*,100) I,J

100 FORMAT(1X,'I=',I3,'J=',I4)

如果I=123,J=2347,则输出:

I=123J=2347

如果需要输出的字符包括撇号,则用两个连续的撇号代表一个被输出的撇号字符。例如:

CHARACTER *10 STUD

READ * STUD

WRITE(*,10) STUD

10 FORMAT(1X,A,'IS LI''S STUDENT.')

END

如果输入给STUD的值为?ZHANG SUN‘,则输出为:

ZHANG SUN IS LI'S STUDENT.

6.1.9 H格式

一般形式:nH <字符串>

用来输出字符常量,与撇号格式相似。n为字符串中字符的个数。如上面的例子(I=123,J=2347),可改写为:

WRITE(*,100) I,J

100 FORMAT(1X,2HI=,I3,2HJ=,I4)

则输出与上例相同:

I=123J=2347

可以单独用撇号格式或H格式输出字符串而不必要求WRITE语句中有相应的输出项。如:

WRITE(*,100)

100 FORMAT(1X,'ZHANG SUN IS LI''S STUDENT.')

或:100 FORMAT(1X,26HZHANG SUN IS LI'S STUDENT.)

用H格式必须准确地数出字符串中的字符个数,数错了就会造成错误。所以最好不用H编辑符而用撇号编辑符,后者不必数字符,使用方便,字符串界线清楚无误。FORTRAN 77之所以保留H编辑符主要是为了与FORTRAN 66兼容(FORTRAN 66只能用H编辑符输出字符串而没有撇号编辑符)。

6.1.10 X格式

一般形式:nX

用于输出空格,n 输出的空格数目。即插入n个空格,或者说,使打印的―当前位置‖向右移动n列。例:

WRITE(*,100)I,A,B

100 FORMAT(1X,I3,2X,F6.2,2X,E11.5)

当I=146,A=124.32,B=1247.32时,输出为:

146 124.32 0.12473E+04

如果不用X格式插入空格,数据将连成一片,难以区分开。

注意:不要把2X作为与A对应的格式符,WRITE语句中的I,A,B分别与FORMAT语句中的I3,F6.2和E11.5格式符对应。X格式符不能用来提供整数、实数、以及其它类型数据的输出格式,它只能插入若干个空格。

FORTRAN 77还允许n是负整数,表示从当前位置向左移动n的绝对值列。微机上使用的FORTRAN子集不能使用n为负值的格式符。

6.1.11 /(斜杠)格式

斜杠(/)编辑符的作用是:结束本记录的输出并开始下一个记录的输出。例如:

WRITE(*,100)I,A,J,B

100 FORMAT(1X,I3,F6.1/1X,I3,F6.1)

若I=246,A=12.36,J=35,B=173.5,输出结果为:

246 12.4

35 173.5

一个WRITE语句输出打印了二行信息,这是由于FORMAT语句中有一斜杠,使之产生两个输出记录(注意,斜杠之后也有一个―1X‖,使第二个记录的第一个字符为―空格‖,作为纵向走纸符)。

如果有两个连续的斜杠,如:

100 FORMAT(1X,I3,F6.1//1X,I3,F6.1)

输出完第一行后,空一行,再输出第二行。即:

246 12.4

(空一行)

35 173.5

如果在编辑符的最后出现斜杠,如:

100 FORMAT(1X,I3,F6.1/1X,I3,F6.1/)

输出完第二个记录后,再输出一个空行。即:

246 12.4

35 173.5

(空一行)

6.1.12 重复系数

重复使用的编辑符可以在其前加一个重复系数,其形式为:rIw,rFw.d,rEw.d,rGw.d,rAw,rLw等,r为重复系数。以下两个FORMAT语句等价:

100 FORMAT(1X,I3,I3,F10.2,F10.2,F10.2)

100 FORMAT(1X,2I3,3F10.2)

如果有以下FORMAT语句:

150 FORMAT(1X,I4,2X,F10.2,2X,I4,2X,F10.2,2X)

其中下划线的二组编辑符是相同的,可以只写一次而用重复系数使之重复使用:150 FORMAT(1X,2(I4,2X,F10.2,2X))

6.1.13 纵向走纸控制

如果需要本行的输出是换一行从头开始打印的话,就应该在本行的开头设置一个空格。―1X‖的本来意义是产生一个空格,但按规定,将输出记录的第一个字符作为纵向走纸控制之用,它产生的动作是―走纸一行‖。因此,FORMAT语句中的第一项―1X‖的作用是―纵向走纸控制‖。

(1)打印输出一行后不会自动换行,―打印的当前位置‖(即指针)停在本行输出的最后一个字符后面。

(2)只要输出记录的第一个字符是空格,就可使走纸一行。因此也可以不采用―1X‖而用? ‘(即空格)也可达到同样的目的。

(3)如果不预先在输出记录的第一个字符处设一空格,则系统会将输出的第一个字符作为走纸控制符,从而使本来想打印的内容缺少了一个字符。

(4)如果走纸控制符为―+‖表示不换行,在本行睛再叠印一行新的内容。

6.1.14 WRITE语句与FORMAT语句的相互作用

输出记录的内容是同WRITE语句和FORMAT语句共同决定的。WRITE语句提供变量值,FORMAT语句提供字符串、空格、以及数据输出的格式。FORMAT 语句中括弧内的内容称为―格式说明‖。对这两个语句相互关系说明如下:(1)WRITE语句中的变量个数与FORMAT语句中的I,F,E,G,D,L,A编辑符的个数可以相等也可以不等。如果变量个数少于上述编辑符个数,则多余的编辑符不起作用。(注意,上述编辑符不包括X编辑符、H编辑符、撇号编辑符,下同)。

在执行格式控制时,对WRITE语句的变量表列和FORMAT语句中的格式说明同时扫描,一一对应。当变量表列结束,而FORMAT语句扫描到一个上述的编辑符,则扫描继续下去,直到遇到非X、非H、非撇号编辑符为止。

(2)如果变量个数多于格式说明中的编辑符个数,即WRITE语句中的变量

表列中还有未输出的元素,而格式说明中编辑符已用完,则重新使用该格式说明,但产生一个新记录。

(3)如果在格式说明中包含有重复使用的编辑符组,则当格式说明用完后再重新使用时,只有最右面的一个编辑符组(包括其重复系数)和它右面的编辑符被重复使用。

(4)如果有输出量,但格式说明中无相应的编辑符,则输出永不停止。因此,如果WRITE语句中有一个或一个以上的输出变量的话,则格式说明中至少应该有一个非X、非H(或撇号)的相应的编辑符。

(5)在扫描过程中,格式说明中的各编辑符(指I,F,E,G,A,L)都要有相应的变量才能组织输出,而X、H、撇号、斜杠等编辑符不需要有相应的输出变量而直接进行输出。

(6)可以有―空格式说明‖,如FORMAT(),用来输出一个空行。此时WRITE 语句中不应有任何输出量。

(7)遇格式说明的右括号(即最后面一外括号)或斜杠―/‖时,结束本记录的输出,但不意味停止全部输出。只要输出表列中还有未输出的量,将重复使用格式说明或按斜杠右面的格式说明组织输出。

右括号的作用与斜杠有一点不同:当扫描到右括弧而输出表列中已无输出变量时,输出即告结束。而斜杠只表示结束本行输出,即使此时已列输出变量要输出,输出并未停止,它会重新开始一个新记录,直到遇到右括号或非X、H、撇号编辑符为止。

(8)FORMAT语句可以与WRITE语句相邻,也可以放在程序任何地方(在PROGRAM语句或子程序语句之后,END语句之前),习惯上将程序中全部FORMAT语句集中放在最前或最后,并给FORMAT语句以较大的标号(一般执行语句E和小标号,FORMAT语句用大标号,如100以上或者说1000以上),以使程序清晰。

(9)用表控格式输出时,在WRITE语句中的输出项中可包含字符串,但如果在输出时用到FORMAT语句,则WRITE语句中不能再包含输出的字符串。格式输出时,如需输出字符串,应在格式说明中设置。

7:OPEN语句(https://www.doczj.com/doc/6a14442212.html,/s/blog_5d2c32550100dhya.html)

OPEN语句用于把设备号与文件名连接起来,并且对文件的各项性质进行指定。它的一般形式为:

OPEN([UNIT=]unit[,ACCESS=access][,ACTION=action][,BLANK=blanks][,BLOC KSIZE=blocksize][,CARRIAGECONTROL=carriagecontrol][,DELIM=delim][,ERR =err][,FILE=file][,FORM=form][,IOFOCUS=iofocus][,IOSTAT=iostat][,PAD=pad][, POSITION=position][,RECL=recl][,SHARE=share][,STATUS=status])

其中的各项参数的意义及取值如下:

1) UNIT:设备号说明。unit是大于或等于0的正整数,设备号说明是OPEN语句的第—项时可以省略―UNIT=‖。

2) ACCESS:存取方式说明。access是字符串表达式:

APPEND 追加方式

SEQUENTIAL 顺序访问方式

DIRECT 直接访问方式

当省略此说明项时为顺序访问方式。

3) ACTION:描述文件的读写属性。action是字符串表达式:

READ 文件为只读方式打开

WRITE 文件为只写方式打开

READWRITE 文件为可读写方式打开

当省略此说明项时,文件打开顺序:READWRITE->READ->WRITE。

4) BLANK:说明数据格式输入字段中空格的含义。blank是字符串表达式:NULL 空格忽略不计,相当于在格式描述符中的BN编辑符

ZERO 空格处理成数字0,相当于BZ编辑符

当省略此说明项时为ZERO。此说明只能用于格式输入。

5) BLOCKSIZE:指定以字节为单位的设备缓存的大小,默认值为一4字节整数。

6) CARRIAGECONTROL:指明处理文件中的第一个字符的方式,其值为字符串表达式:

Fortran 对第一个字符作一般的Fortran解释

LIST 指出在文件的每两个记录之间有—个空格

默认状态下,对于连接到打印机和显示器这样的设备,设置值为Fortran,对于连接到文件的设备,设置值为LIST。当FORM被设成UNFORMATTED和BINARY时,其值被忽略。

7) DELIM:指明分隔直接列表或格式化名称列表记录的方式,其值为字符串表达式:

APOSTROPHE 用单撇号(‘)分隔

QUOTE 用双撇号(‖)分隔

NONE 不用分隔符

如果在OPEN语句中设置了分隔符,则在文件中的单撇号和双撇号都是成对出现的。

8) ERR:出错处理说明。其值是同一程序中的一条语句的标号,当OPEN语句执行出错时执行此语句。如果省略该项,则出错时给出出错信息并终止运行。9) FILE:文件名。file是一字符串表达式,可以是空、合法的数据文件名字、设备名字或是作为内部文件的变量。在WinNT/9x中允许使用长度大于8的文件名和长度大于3的文件扩展名。省略此项时,编译器将自动产生一个文件名唯一的临时文件,这个临时文件将在结束运行或与文件连接的设备关闭后被删除掉。10) FORM:记录格式说明。form是字符串表达式:

FORMATTED 记录按有格式存放。

UNFORMATTED 记录按无格式存放。

当省略此说明项时为:对顺序文件是有格式的;对直接文件是无格式的。

11) IOFUS:指出一个新Quickwin子窗口是否为活动窗口,其值为逻辑值。缺省值为真。

12) IOSTAT:出错状态说明。iostat是—个缺省长度为4的整形变量。当执行此OPEN语句时系统给变量赋值:

零没有发生错误

负数文件结尾

正数发生错误,其值视具体计算机系统而定

若省略该项则没有此功能。

13) PAD:从格式化文件中记录的数据少于要读取的数据时,是否用空格来填充没有从记录中读到数据的变量。pad是字符串表达式:

YES 填充(默认值)

NO 不填充

14) POSITION:指定打开顺序文件的访问位置,position是字符串表达式:ASIA 已被连接的文件的访问位置是固定的,未被连接的文件的访问位置是文件的开始处。

REWIND 把文件的访问位置定在文件的开始处(文件己存在)。

APPEND 把文件的访问位置定在文件的末尾处(文件己存在)。

对于一个新文件,文件的访问位置总是被定在文件的开始处。

15) RECL:记录长度(单位为字节)说明。recl是指定的正整型量或算术表达式,用来指定直接文件中的每条记录的字节数,或顺序文件中的记录的最大长度。

16) SHARE:指明当文件打开时是否实现文件的锁定。share是字符串表达式:DENYRW 动态读写模式。不允许其他的进程打开这个文件。

DENYWR 动态写模式。不允许其他的进程以写的方式打开这个文件。DENYRD 动态读模式。不允许其他的进程以读的方式打开这个文件。DENYNONE 默认的非动态模式。允许其他的进程打开这个文件。

17) STATUS:文件状态说明。status是字符串表达式:

OLD 表示指定的文件是已经存在的老文件。这一状态一般用于读操作,如果用于写操作则重写文件,原文件内容将被覆盖。如果指定的文件并不存在,则系统将给出出错信息。

NEW 表示指定的文件尚不存在。执行OPEN语句时将在磁盘上建立该文件并使其状态改变为OLD。NEW状态一般用于写操作。如果指定的文件名已经存在将给出出错信息(有的系统不给出信息而是把这个已经存在的文件冲掉使原来的内容不复存在)。

SCRATCH 表示与设备号相连接的文件在关闭时将被自动删除。注意:此状态不能与FILE说明共存,只能用于由计算机系统指定的文件名,使该文件作为程序运行过程中的一个临时性文件。

REPLACE 表示替换一个有相同名字的文件,如果没有同名的文件存在,将产生一个新文件。

UNKNOWN 表示文件可以是已存在的或不存在的。系统打开文件状态的次序为:OLO->NEW->创建新文件。STATUS的设置值只影响磁盘文件,像键盘和显示器这样的设备将忽略这一设置。

若省略该项时默认的状态为UNKNOWN。

8:read

8.1 表控输入

FORTRAN用READ语句实现输入数据,READ语句有三种格式:

表控格式(自由格式)输入

格式输入:按用户规定的格式输入

无格式输入:以二进制形式输入,适用从磁盘或磁带输入。

表控格式输入的一般形式:READ *,变量表

其中―*‖号表示―表控输入‖,例如:READ *,I,J,A,B要求从系统隐含的输入设备上读入两个整型数给I和J,读入两个实数给A和B。可以从键盘输入以下数据:3,10,7.5,-15.8(数据间以逗号相隔)然后回车,或:3 10 7.5 -15.8然后回车(数据间以一个或多个空格间隔)。

上面的READ语句没有明显地指明从哪个设备上读入数据,但这种写法表示了―从系统隐含的输入设备读数据‖。有的计算机系统(尤其是FORTRAN77子集)不接受这种形式的READ语句,此时可以写成下面形式:READ (*,*)变量表第一个―*‖,代表―系统隐含的输入设备‖(一般指显示器和键盘)第二个―*‖,代表―表控输入‖。例如:READ(*,*)A,B,C,I,J,K 从键盘输入数据如下:7.6,8.5,7.4,6,7,8(然后回车),数与数之间也可以用空格相隔,7.6 8.5 7.4 6 7 8(然后回车),一个空格和多个空格的作用是一样的。

几点说明:

1.输入数据的类型与变量类型要求一致。如:READ(*,*)A,B,I,J 输入数据 3.4,5.6,8,9是正确的,而数据 3.4,5.6,8.0,9.0是错误的,如果数据是23,45,6,7,即变量A,B为实型,输入数据为整型,许多系统是通融的,先自动将它变成实数然后输入给实型变量。

2.输入数据的个数应当不少于READ语句中变量的个数,如:READ(*,*)A,B,C,D,E,F 应输入数据:5.6,7.8,7.4,6.3,4,6;如果输入的数据个数多于所需的个数,则多余的数据不起作用,在上例中输入5.6,7.8 7.4,6.3,4,6,9.3,最后一个数9.3无效;如果输入的第一个数据行上数据个数少于READ语句中变量的个数,则系统会从输入的第二个数据行中读数,依此类推。

3.每一条输入数据都从一个新的记录开始读数如:READ(*,*)I,J,K READ (*,*)L,M,N 输入数据:2,4 6,8回车;10,13 14,16回车,结果:I=2 J=4 K=6 L=10 M=13 N=14 ,8和16是多余的

4.输入数据时,用―/‖表示数据结束,READ语句不再继续读数。如:READ (*,*)A,B,C 输入数据:3.24,

5.8/3.6回车,将3.24,5.8送到A,B后,不再读数据给C。如果C已被赋值则保留原值。用这个方法可以控制对某些变量是否赋于新值。甚至可以在一个输入行中一个数据也没有,用一个―/‖使READ语句中所有变量都不被赋值。

5.如果输入语句中有几个连续的变量需要赋予同一个值,可以用重复因子γ 表示,表示一数据重复出现γ次。如:READ(*,*)A,B,C 输入数据:3.4,3.4,3.4 也可以:3*3.4;如输入-3.4 则3*–3.4。

6.由于空格是分隔两个数据的符号,因此在一个数据的中间不能插入空格。如:READ(*,*)M,N,K 输入数据如下:1234,5678,56 I=1234 J=5678 K=56 如输入数据为:12?34?56?78?56 I=12 J=34 K=56。

8.2READ(说明项)[输入项表]

输入项表中各项可以是变量名、数组元素名、数组名。各项之间用逗号隔开。在READ语句中也可以没有输入项表,这时,每执行一次READ语句就跳过一个记录,也就是说每执行一次READ语句文件指针向文件尾部方向移动一个记录位置。

说明项包括以下各项:

(1)设备号说明:[UNIT=]ie。可以是星号,表示从隐含设备输入;或者是OPEN语句中指定的设备号,指从与该设备号关联的文件输入。

(2)格式说明:[FMT=]格式标识符。格式标识符可是*号、FORMAT语句标号或者格式字符串。只有在对格式文件进行输入时才需要格式说明。对无格式文件进行输入操作时不允许出现格式说明。FMT=可以省略不写。

(3)记录号说明:REC=ie。ie是一个值为正整数的算术表达式,由用户给出。

对于直接存取文件进行输入时,此项必不可少,READ语句从文件中去读由ie 指定的那个记录号开始的记录。对于顺序存取文件,在READ语句中不得出现这一项。

(4)文件结束说明:END=l。l代表本程序单位中的一个语句标号。当READ 语句中具有这一项说明时,当读到文件结束樗时的士自动转向带有该标号的那条语句去执行,否则程序将终止执行,由系统给出出错信息。

(5)出错说明:ERR=l。l代表本程序单位中的一个语句标号。当READ语句执行过程中发生错误时(如格式不符等)程序将自动转向带有该标号的那条语句去继续执行,否则程序将终止执行,由系统给出出错信息。

(6)输入状态说明:IOSTAT=iv。iv代表一个整型变量,当执行READ语句时,将给iv赋一个整型值。当READ正确执行时,iv得零值;当遇到文件结束时iv得一大于零的数;当遇到出错条件时iv得一负数,整数的值由各计算机系统规定。

在Java程序中截获控制台输出

在Java程序中截获控制台输出 在Java开发中,控制台输出仍是一个重要的工具,但默认的控制台输出有着各种各样的局限。本文介绍如何用Java管道流截取控制台输出,分析管道流应用中应该注意的问题,提供了截取Java程序和非Java程序控制台输出的实例。 即使在图形用户界面占统治地位的今天,控制台输出仍旧在Java程序中占有重要地位。控制台不仅是Java程序默认的堆栈跟踪和错误信息输出窗口,而且还是一种实用的调试工具(特别是对习惯于使用println()的人来说)。然而,控制台窗口有着许多局限。例如在Windows 9x平台上,DOS控制台只能容纳50行输出。如果Java程序一次性向控制台输出大量内容,要查看这些内容就很困难了。 对于使用javaw这个启动程序的开发者来说,控制台窗口尤其宝贵。因为用javaw启动java程序时,根本不会有控制台窗口出现。如果程序遇到了问题并抛出异常,根本无法查看Java运行时环境写入到System.out或System.err的调用堆栈跟踪信息。为了捕获堆栈信息,一些人采取了用try/catch()块封装main()的方式,但这种方式不一定总是有效,在Java运行时的某些时刻,一些描述性错误信息会在抛出异常之前被写入System.out和S ystem.err;除非能够监测这两个控制台流,否则这些信息就无法看到。 因此,有些时候检查Java运行时环境(或第三方程序)写入到控制台流的数据并采取合适的操作是十分必要的。本文讨论的主题之一就是创建这样一个输入流,从这个输入流中可以读入以前写入Java控制台流(或任何其他程序的输出流)的数据。我们可以想象写入到输出流的数据立即以输入的形式“回流”到了Java程序。 本文的目标是设计一个基于Swing的文本窗口显示控制台输出。在此期间,我们还将讨论一些和Java 管道流(PipedInputStream和PipedOutputStream)有关的重要注意事项。图一显示了用来截取和显示控制台文本输出的Java程序,用户界面的核心是一个JTextArea。最后,我们还要创建一个能够捕获和显示其他程序(可以是非Java的程序)控制台输出的简单程序。 一、Java管道流 要在文本框中显示控制台输出,我们必须用某种方法“截取”控制台流。换句话说,我们要有一种高效地读取写入到System.out和S ystem.err 所有内容的方法。如果你熟悉Java的管道流PipedInputStream和PipedOutputS tream,就会相信我们已经拥有最有效的工具。 写入到PipedOutputStream输出流的数据可以从对应的PipedInputS tream输入流读取。Java的管道流极大地方便了我们截取控制台输出。Listing 1显示了一种非常简单的截取控制台输出方案。 【Listing 1:用管道流截取控制台输出】 PipedInputS tream pipedIS = new PipedInputStream(); PipedOutputS tream pipedOS = new PipedOutputStream(); try { pipedOS.connect(pipedIS); } catch(IOException e) { System.err.println("连接失败");

永磁同步电机矢量控制简要原理

关于1.5KW永磁同步电机控制器的初步方案 基于永磁同步电机自身的结构特点,要实现对转速及位置的伺服控制,采用矢量控制算法结合SVPWM技术实现对电机的精确控制,通过改变电机定子电压频率即可实现调速,为防止失步,采用自控方式,利用转子位置检测信号控制逆变器输出电流频率,同时转子位置检测信号作为同步电机的启动以及实现位置伺服功能的组成部分。 矢量控制的基本思想是在三相永磁同步电动机上设法模拟直流 电动机转矩控制的规律,在磁场定向坐标上,将电流矢量分量分解成产生磁通的励磁电流分量id和产生转矩的转矩电流iq分量,并使两分量互相垂直,彼此独立。当给定Id=0,这时根据电机的转矩公式可以得到转矩与主磁通和iq乘积成正比。由于给定Id=0,那么主磁通就基本恒定,这样只要调节电流转矩分量iq就可以像控制直流电动机一样控制永磁同步电机。 根据这一思想,初步设想系统的主要组成部分为:主控制板部分,电源及驱动板部分,输入输出部分。 其中主控制板部分即DSP板,根据控制指令和位置速度传感器以及采集的电压电流信号进行运算,并输出用于控制逆变器部分的控制信号。 电源和驱动板部分主要负责给各个部分供电,并提供给逆变器部分相应的驱动信号,以及将控制信号与主回路的高压部分隔离开。 输入输出部分用来输入控制量,显示实时信息等。

原理框图如下: 基本控制过程:速度给定信号与检测到的转子信号相比较,经过速度控制器的调节,产生定子电流转矩分量Isq_ref,用这个电流量作为电流控制器的给定信号。励磁分量Isd_ref由外部给定,当励磁分量为零时,从电机端口看,永磁同步电机相当于一台他励直流电机,磁通基本恒定,简化了控制问题。另一端通过电流采样得到三相定子电流,经过Clarke变换将其变为α-β两相静止坐标系下的电流,再通过park变换将其变为d-q两相旋转坐标系下电流Isq,Isd,分别与两个调节器的参考值比较,经过控制器调节后变为电压信号Vsd_ref 和Vsq_ref,再经过park逆变换,得到Vsa_ref和Vsb_ref作为SVPWM

《计算机控制技术》教材习题解答1

《计算机控制技术》习题解答 第一章 什么是计算机控制系统计算机控制系统由哪几部分组成 答:计算机控制系统就是利用计算机(通常称为工业控制计算机,简称工业控制机)来实现生产过程自动控制的系统。 计算机控制系统的组成:计算机控制系统由计算机(工业控制机)和生产过程两大部分组成。 、微型计算机控制系统的特点是什么 微机控制系统与常规的自动控制系统相比,具有如下特点: a.控制规律灵活多样,改动方便 b.控制精度高,抑制扰动能力强,能实现最优控制 c.能够实现数据统计和工况显示,控制效率高 d.控制与管理一体化,进一步提高自动化程度 计算机控制系统结构有哪些分类指出这些分类的结构特点和主要应用场合。

答: (1)操作指导控制系统 优点:结构简单,控制灵活,安全。 缺点:由人工操作,速度受到限制,不能控制多个对象。(2)直接数字控制系统(DDS) 优点:实时性好,可靠性高,适应性强。 (3)监督控制系统(SCC) 优点:生产过程始终处于最优工况。 (4)分散控制系统(DCS) 优点:分散控制、集中操作、分级管理、分而自治和综合协调。(5)现场总线控制系统(FCS) 优点:与DCS相比,降低了成本,提高了可靠性。国际标准统一后,可实现真正的开放式互联系统结构。 .计算机控制系统的控制过程是怎样的 计算机控制系统的控制过程可归纳为以下三个步骤: (1)实时数据采集:对被控量的瞬时值进行检测,并输入给计算机。

(2)实时决策:对采集到的表征被控参数的状态量进行分析,并按已定的控制规律,决定下一步的控制过程。 (3)实时控制:根据决策,适时地对执行机构发出控制信号,完成控制任务。 .实时、在线方式和离线方式的含义是什么 答:所谓实时,是指信号的输入、计算和输出都要在一定的时间范围内完成,亦即计算机对输入信息,以足够快的速度进行控制,超出了这个时间,就失去了控制的时机,控制也就失去了意义。 在计算机控制系统中,生产过程和计算机直接连接,并受计算机控制的方式称为在线方式或联机方式;生产过程不和计算机相连,且不受计算机控制,而是靠人进行联系并做相应操作的方式称为离线方式或脱机方式。 操作指导、DDC和SCC系统的工作原理如何它们之间有何区别和联系 (1)操作指导控制系统:在操作指导控制系统中,计算机的输出不直接作用于生产对象,属于开环控制结构。计算机根据数学模型、控制算法对检测到的生产过程参数进行处理,计算出各控制量应有的较合适或最优的数值,供操作员参考,这时计算机就起到了操作指导的作用。其原理框图如图所示。

java控制台输入

java控制台输入 (2009-12-08 11:13:28) 转载 分类:IT 标签: 杂谈 0引言 从控制台中读取数据是一个比较常用的功能,在JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从JDK 5.0 版本开始,能从控制台中输入数据的方法每增加一个版本号,就有一种新增的方法,这也增加了选择的种类,可以依据不同的要求来进行选择。下面来看一下,各个版本中如何从控制台中读取数据以及各自的优缺点。 1JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的输入流,再桥接至字符流从字符流中读入数据。示例代码如下: import java.io.IOException; import java.io.InputStreamReader; public class Test1 { public static void main(String[] args) { String str = readString("请输入字符串:"); System.out.println("readString 方法的输入:" + str); } private static String readString(String prompt) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; try {

System.out.print(prompt); str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } } 从上面的代码段来看,这种控制台输入的方法非常地麻烦,为了能读取整行的数据,采用了BufferedReader类来进行处理,而且在读取的过程中还需要捕获IOException。不过这是JDK 1.4 及以下版本中从控制台读取数据唯一的办法。还有一种非控制台读入数据的办法,就是采用Swing 中的JOptionPane,会弹出一个非常漂亮的输入对话框让使用者输入数据,但这是一种比较另类的做法,不推荐使用。 import javax.swing.JOptionPane; public class Test2 { public static void main(String[] args) { String str = readStringFromDialog("请输入字符串:"); System.out.println("readStringFromDialog 方法的输入:" + str); } private static String readStringFromDialog(String prompt) { return JOptionPane.showInputDialog(prompt); } } 上面的两种方法都有个共同的缺点——只能读取字符串,若需要读取其他类型的数据需要手工进行转换。

CH06 输入输出控制 (1)

CH06 输入输出控制 习题与思考题 1.CPU与外设之间的数据传输控制方式有哪几种?何谓程序控制方式?它有哪两种基本方式?请分别用流程图的形式描述其处理过程。 解答:CPU与外设之间的数据传输控制方式有三种:程序控制方式、中断方式、DMA方式。程序控制方式:程序方式就是指用程序来控制进行输入输出数据传输的方式。 程序控制方式的两种基本方式:无条件程序控制方式,条件程序控制方式; 流程图: 2.采用用查询方式将数据区DATA开始的100个字节数据在FCH端口输出,设状态端口地址为FFH,状态字的D0位为1时表示外设处于“忙”状态。试编写查询程序。 解答: DA TA SEGMENT BUFF DB 100 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUFF;送缓冲区指针 MOV CX,100;送计数初值 WAIT1:IN AL,0FFH;查询状态,若为1,则等待 TEST AL,01H JNZ WAIT1 MOV AL, [BX] OUT 0FCH, AL ;输出一个数据 INC BX LOOP WAIT1

MOV AH,4CH INT 21H CODE ENDS END START 3.何谓中断优先级,它对于实时控制有什么意义?有哪几种控制中断优先级的方式? 解答:当系统中有多台设备(即多个中断源)同时提出中断请求时,就有先响应谁的问题,也就是如何确定优先级的问题。一般来讲,CPU总是先响应具有较高优先级的设备。解决优先级问题的方法一般有三种:软件查询法、简单硬件方式和专用硬件方式。 4.什么叫DMA传送方式? 其主要步骤是什么?试比较DMA传输、查询式传输及中断方式传输之间的优缺点和适用场合? 解答:在DMA方式下,外部设备利用专门的接口电路直接和存储器进行高速数据传送,而不需经过CPU,数据传输的速度基本上取决于外设和存储器的速度,传输效率大大提高。DMA主要步骤: 一般来说,完成一次DMA传输的主要步骤为: (1)当外设准备就绪时,它向DMA控制器发DMA请求,DMA控制器接到此信号后,经过优先级排队(如需要的话),向CPU发DMA请求(送至CPU的HOLD引脚)。 (2)CPU在完成当前总线周期后会立即对DMA请求做出响应。CPU的响应包括两个方面:一方面将控制总线、数据总线和地址总线置高阻,另一方面将有效的HLDA信号加到DMA控制器上,以此来通知DMA控制器,CPU已经放弃了对总线的控制权。 (3)DMA控制器收到HLDA信号后,即取得了总线控制权。这时,它往地址总线上发送地址信号(指出本次数据传输的位置),同时,发出相应的读/写信号(决定是进行输入还是输出操作)。 (4)每传送一个字节,DMA控制器会自动修改地址寄存器的内容,以指向下一个要传送的字节。同时,修改字节计数器的内容,判别本次传输是否结束。 (5)当字节计数器的值达到计数终点时,DMA过程结束。DMA控制器通过使HOLD 信号失效,撤消对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常的运行。 程序方式的特点:使用方便,系统开销不大,但速度较慢。适用于设备不多且实时响应要求不高的小系统。 中断方式:CPU与外设之间可以并行工作,因此大提高CPU的工作效率,但一系列的保护(恢复)现场的工作,仍要花费不少CPU的时间。适用于设备较多且实时响应要求较高的系统。 DMA方式:需要增加DMA控制器,适用于大量高速的数据传送。 5.什么是中断向量?中断向量表的功能是什么?已知中断源的中断类型码分别是84H和FAH,它们所对应的中断向量分别为:2000H:1000H, 3000H:4000H, 这些中断向量应放在中断向量表的什么位置?如何存放?编程完成中断向量的设置。 解答:中断向量----中断服务程序的入口地址;中断向量表----存放中断向量的表,中断向量与中断类型码有对应关系。 84H的位置:210H~213H;FAH的位置:3E8H~3EBH 0000:210H 00 10 00 20

永磁同步电动机矢量控制(结构及方法)

第2章永磁同步电机结构及控制方法 2.1 永磁同步电机概述 永磁同步电动机的运行原理与电励磁同步电动机相同,但它以永磁体提供的磁通替代后的励磁绕组励磁,使电动机结构较为简单,降低了加工和装配费用,且省去了容易出问题的集电环和电刷,提高了电动机运行的可靠性;又因无需励磁电流,省去了励磁损耗,提高了电动机的效率和功率密度。因而它是近年来研究得较多并在各个领域中得到越来越广泛应用的一种电动机。 永磁同步电动机分类方法比较多:按工作主磁场方向的不同,可分为径向磁场式和轴向磁场式;按电枢绕组位置的不同,可分为内转子式(常规式)和外转子式;按转子上有无起绕组,可分为无起动绕组的电动机(用于变频器供电的场合,利用频率的逐步升高而起动,并随着频率的改变而调节转速,常称为调速永磁同步电动机)和有起动绕组的电动机(既可用于调速运行又可在某以频率和电压下利用起动绕组所产生的异步转矩起动,常称为异步起动永磁同步电动机);按供电电流波形的不同,可分为矩形波永磁同步电动机和正弦波永磁同步电动机(简称永磁同步电动机)。异步起动永磁同步电动机用于频率可调的传动系统时,形成一台具有阻尼(起动)绕组的调速永磁同步电动机。 永磁同步伺服电动机的定子与绕组式同步电动机的定子基本相同。但根据转子结构可分为凸极式和嵌入式两类。凸极式转子是将永磁铁安装在转子轴的表面,如图 2-1(a)。因为永磁材料的磁导率十分接近空气的磁导率,所以在交轴(q 轴)、直轴(d 轴)上的电感基本相同。嵌入式转子则是将永磁铁安装在转子轴的内部,如图 2-1(b),因此交轴的电感大于直轴的电感。并且,除了电磁转矩外,还有磁阻转矩存在。 为了使永磁同步伺服电动机具有正弦波感应电动势波形,其转子磁钢形状呈抛物线状,其气隙中产生的磁通密度尽量呈正弦分布;定子电枢绕组采用短距分布式绕组,能最大限度地消除谐波磁动势。永磁体转子产生恒定的电磁场。当定子通以三相对称的正弦波交流电时,则产生旋转的磁场。两种磁场相互作用产生电磁力,推动转子旋转。如果能改变定子三相电源的频率和相位,就可以改变转子的转速和位置。

工业控制系统的输入与输出信

工业控制系统的输入与 输出信 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

工业控制系统的输入与输出信号 工业生产过程实现计算机控制的前提是,必须将工业生产过程的工艺参数、工况逻辑和设备运行状况等物理量经过传感器或变送器转变为计算机可以识别的电信号(电压或电流)或逻辑量。 传感器和变送器输出的信号有多种规格,其中毫伏(mV)信号、0~5V电压信号、1~5V电压信号、0~10mA电流信号、4~20mA电流信号、电阻信号是计算机测控系统经常用到的信号规格。在实际工程中,通常将这些信号分为模拟量信号和数字量信号两大类。 针对某个生产过程设计一套计算机控制系统,必须了解输入输出信号的规格、接线方式、精度等级、量程范围、线性关系、工程量换算等诸多要素。 1.模拟量信号 许多来自现场的检测信号都是模拟信号,如液位、压力、温度、位置、PH 值、电压、电流等,通常都是将现场待检测的物理量通过传感器转换为电压或电流信号;许多执行装置所需的控制信号也是模拟量,如调节阀、电动机、电力电子的功率器件等的控制信号。 模拟信号是指随时间连续变化的信号,这些信号在规定的一段连续时间内,其幅值为连续值。 模拟信号有两种类型:一种是由各种传感器获得的低电平信号;另一种是由仪器、变送器输出的4~20mA的电流信号或1~5V的电压信号。这些模拟信号经过采样和A/D转换输入计算机后,常常要进行数据正确性判断、标度变换、线性化等处理。 模拟信号非常便于传送,但它对干扰信号很敏感,容易使传送中信号的幅值或相位发生畸变。因此,有时还要对模拟信号做零漂修正、数字滤波等处理。 模拟量输出信号可以直接控制过程设备,而过程又可以对模拟量信号进行反馈。闭环PID控制系统采取的就是这种形式。模拟量输出还可以用来产生波形,这种情况下D/A变换器就成了一个函数发生器。 模拟信号的常用规格: 1)1~5V电压信号 此信号规格有时称为DDZ-Ⅲ型仪表电压信号规格。1~5V电压信号规格通常用于计算机控制系统的过程通道。工程量的量程下限值对应的电压信号为lV,工程量上限值对应的电压信号为5V,整个工程量的变化范围与4V的电压变化范围相对应。过程通道也可输出1~5V电压信号,用于控制执行机构。 2)4~20mA电流信号 4~20mA电流信号通常用于过程通道和变送器之间的传输信号。工程量或变送器的量程下限值对应的电流信号为4mA,量程上限对应的电流信号为20mA,整个工程量的变化范围与16mA的电流变化范围相对应。过程通道也可输出 4~20mA电流信号,用于控制执行机构。 有的传感器的输出信号是毫伏级的电压信号,如K分度热电偶在l000℃时输出信号为。这些信号要经过变送器转换成标准信号(4~20mA)再送给过程通

控制台输入输出

2.2.1 Console.WriteLine( ) 方法 WriteLine( )方法的作用是将信息输出到控制台,但是WriteLine方法在输出信息的后面添加一个回车换行符用来产生一个新行。 在WriteLine( )方法中, 花括号(“{}”)用来在输出字符串中插入变量。既占位符 N表示输出变量的序号,从0开始,如当N为0时,则对应输出第1个变量的值,当N 为5时,则对应输出第6个变量的值,依次类推。 [,M]其中M表示输出的变量所占的字符个数,当这个变量的值为负数时,输出的变量按照左对齐方式排列;如果这个变量的值为正数的时候,输出的变量按照右对齐方式排列。 [:格式化字符串]也是可选项,因为在向控制台输出时,常常需要指定输出字符串的格式。通过使用标准数字格式字符串,可以使用Xn的形式来指定结果字符串的格式,其中X 指定数字的格式,n指定数字的精度,即有效数字的位数。这里提供8个常用的格式字符。 1.货币格式 货币格式C或者c的作用是将数据转换成货币格式,在格式字符C或者c后面的数字表示转换后的货币格式数据的小数位数。 例如: double k=1234.789; Console.WriteLine(“{0,8:c}”, k); //结果是¥1,234.79 Console.WriteLine(“{0,10:c4}”, k); //结果是¥1,234.7890 2.整数数据类型格式 格式字符D或者d的作用是将数据转换成整数类型格式。 例如: int k=1234; Console.WriteLine(“{0:D}”, k); //结果是1234 Console.WriteLine(“{0:d3}”, k); //结果是1234 Console.WriteLine(“{0:d5}”, k); //结果是01234 3. 科学计数法格式 格式字符E或者e的作用是将数据转换成科学计数法格式。 例如: int k=123000; double f=1234.5578; Console.WriteLine(“{0:E}”, k); //结果是1.230000E+005 Console.WriteLine(“{0:e}”, k); //结果是1.230000e+005

输入输出(I_O)系统

输入输出(I/O)系统 (总分:50.00,做题时间:90分钟) 一、单项选择题(总题数:25,分数:50.00) 1.如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是( )。 (分数:2.00) A.中断控制方式 B.程序I/O方式 C.DMA控制方式√ D.无条件存取方式 解析:整个I/O控制方式的发展就是将CPU从中解脱出来,DMA方式与通道方式中进行的数据交换都不经过CPU来完成。 2.属于共享设备的是( )。 (分数:2.00) A.打印机 B.磁盘√ C.用户终端 D.鼠标器 解析: 3.设备的打开、关闭、读、写等操作是由( )完成的。 (分数:2.00) A.用户程序 B.编译程序 C.设备分配程序 D.设备驱动程序√ 解析: 4.程序员利用系统调用打开I/O设备时,通常使用的设备标识是( )。 (分数:2.00) A.逻辑设备名√ B.物理设备名 C.主设备号 D.从设备号 解析:本题考查设备独立性问题。在现在操作系统中,都实现了设备独立性,即程序独立于具体使用的物理设备,在应用程序中使用逻辑设备名称为请求使用某类设备,而系统实际执行中才使用物理设备名称。 5.在DMA方式中,CPU是以( )为单位对I/O进行干预的。 (分数:2.00) A.字符 B.字节

C.数据块√ D.一组数据块 解析:程序I/O与中断方式是以字节为单位,DMA中是以数据块为单位,通道方式中是以一组数据块为单位。 6.系统的通道数量较少时,可能会产生瓶颈现象。下面( )不是解决此问题的有效方法。 (分数:2.00) A.提高CPU的速度√ B.增加设备与通道之间的通路 C.采用虚拟设备技术 D.在设备上增加一些硬件缓冲区 解析:提高CPU的速度不能改变瓶颈问题。 7.设备管理程序对设备的管理是借助一些数据结构来进行的,下面的( )不属于设备管理数据结构。 (分数:2.00) A.JCB √ B.DCT C.COCT D.CHCT 解析:JCB:作业控制块,DCT:设备控制表,COCT控制器控制表,CHCT通道控制表。 8.对磁盘而言,输入输出操作的信息传送单位为( )。 (分数:2.00) A.字符 B.字 C.块√ D.文件 解析:磁盘属于块设备,即它的信息的存取都是以数据块为单位的。 9.计算机系统中判别是否有中断事件发生应是在( )。 (分数:2.00) A.进程切换时 B.执行完一条指令后√ C.执行P操作后 D.由用户态转入核心态时 解析: 10.关于通道、设备控制器和设备之间的关系,下面哪些叙述是正确的( )。 (分数:2.00) A.控制器和通道可以分别控制设备 B.控制器、通道和设备可以并行工作 C.通道控制设备控制器,设备控制器控制设备进行工作√ D.设备分配程序先分配通道,再分配控制器,最后分配设备

计算机控制系统复习笔记

选择填空: 1 计算机控制系统由工业控制计算机主体(包括硬件、软件与网络结构)及其输入输出通道和被控对象(工业生产对象(被控对象、工业自动化仪表))。两大部分组成。自动控制系统的基本功能是信号的传递、处理和比较,分为开环控制系统和闭环控制系统两种。 2 计算机控制系统的分类:数据采集系统(DAS)、直接数字控制系统(DDC)、监督控制系统(SCC)、集散控制系统(DCS)、现场总线控制系统(FCS)、工业过程计算机集成制造系统(流程CIMS)、网络控制系统(NCS)。 1内部总线:(1)STD总线(2)PCI总线:(3)PC104总线 2 外部总线: IEEE-488总线 3无论是RS-232还是RS-485,均可采用串行异步收发数据格式。 连接握手:是指发送者在发送一个数据块之前使用一个特定的握手信号来引起接收者的注意,表明要发送数据,接收者则通过握手信号回应发送者,说明它已经做好了接收数据的准备。连接握手可以通 5 LED显示器的驱动方式:静态驱动和时分割驱动;LED显示器的扫描方式:动态和静态。 6 采样定理:由采样信号完全无失真地恢复原信号的条件是采样速度要满足: ,其中:,为采样角速度;T为采样周期;为原信号频谱中最高角频率;为的各种信号分量中最小的时间常数。 7 模拟开关 (1)CD4051为单端8通道低价格模拟开关,引脚如图4-10所示。 (2)CD4052:低成本差动4通道模拟开关,引脚如图4-12所示,真值表如表4-3所示。 其中X、Y分别为X组和Y组的公共端。 (3)32通道模拟量输入电路设计实例:8 模拟量输入通道

转换器工作原理: 量化:是用有限字长的一组数码和二进制数码去整量化或逼近时间离散幅值连续的采样信号。 对n位字长的A/D转换器,若满度(满量程)输入的模拟量值表示为FSR,则量化单位q由下式确定q=FSR/。假设满度输入电压为5V,现用12位的A/D转换器进行转换,有:q=5V/=5V/4096≈1.22mV 显然,对同一个FSR的值,A/D转换器的位数越多,q所代表的量值就越小。 编码:(1)单极性编码 最常用的单极性编码形式是二进制数码。在这种编码中,数字量是用加权和来表示的: 式中是0或是1取决于相应数位的值是0或是1; (2 ①符号-数值码②偏移二进制码③补码表示法 A/D转换器的技术指标 1.分辨率 如8位、10 映。所以,n 分辨率 2 1.0~200μs。 0.05%/%ΔUs时,其含义是电源电压 Us的1%时,相当于引入0.05%的模拟输入值的变化。 9模拟量输出通道 组成: 两种基本结构形式:一个通道设置一片D/A转换器,多个通道共用一片D/A转换器 技术指标: 1.分辨率:含义与A/D转换器相同。 2.稳定时间:指D/A转换器中代码有满度值的变化时,其输出达到稳定(一般稳定到与±1/2最低位值相当的模拟量范围内)所需的时间。一般为几十毫秒到几微秒。 3.输出电平:不同型号的D/A转换器的输出电平相差较大,一般为5~10V,也有一些高压输出型的为24~30V。还有一些电流输出型,低的为20mA,高的可达3A。 4.输入编码:如二进制、BCD码、双极性时的符号-数值码、补码、偏移二进制码等。必要时可在D/A转换前用计算机进行代码转换。 10 电流/电压转换:变送器的输出信号为电流信号时,要转化成可被单片机系统处理的电压信号用。 11 干扰的类型按其产生的原因、噪声传导模式和噪声波形的性质的不同进行划分。

Fortran输入输出格式控制

Open, Read and Write in Fortran 1:write(*,*)"string";write(unit=*,FMT=*)"string";write(unit=6,FMT=*)"string"。以上等价,6是默认输出位置,即屏幕。 2:print*,"string"。Print只能对屏幕输出。 3:integer(kind=4) a !f90;integer*4 a !f77;integer(4) a !f77。以上等价。 real(kind=4) a !f90;real*4 a !f77;real(4) a !f77。以上等价。 4:f77,变量名长度1~6;f90,变量名长度1~31。 5:read(*,*)"string";write(unit=*,FMT=*)"string";write(unit=5,FMT=*)"string"。以上等价,5是默认输入位置,即键盘。 6:FORMAT (http://202.118.74.226/fortran/pages/730.htm)

6.1 格式输出 格式输出语句由两部分组成:输出语句和输出格式语句。输出语句的一般形式为: WRITE(*,L) 输出表列或:PRINT L 输出表列 其中:* 代表隐含的输出设备,L 指输出格式语句的标号。 输出格式语句的一般形式: L FORMAT(1X,S) 其中:L 输出格式语句的标号,1X 纵向走纸符,S 输出格式,用不同的―格式编辑符‖(简称―编辑符‖)来实现指定的输出格式,各格式间用逗号相隔。 FORMAT语句又叫―格式语句‖,是一个非执行语句,本身不产生任何操作,只是提供输入或输出的格式。FORMAT语句可以出现在程序的任何地方(但必须在PROGRAM语句之后和END语句之前,如果在子程序中用FORMAT语句,则应在子程序定义语句之后)。系统按WRITE语句或PRINT语句中指定的语句标号找到相应的FORMAT语句,并按FORMAT语句所规定的格式对数据进行输出。注意,PRINT语句中不能再用―*‖,PRINT语句中的第一个标识符是语句标号而不是要打印输出的数据。 输出格式分两类基本格式 6.1.1 I格式(又叫整数格式) 一般形式:Iw 或:Iw.m 其中:w 一个数据占的位数宽度(又称―字段宽度‖),m 需要输出的最少数字位数。例1: WRITE (*,100)M,N 100 FORMAT(1X,I4,I4) 如果M=40,N=-12,则输出如下: ??40 ?-12 例2: WRITE (* , 100) I,J,K 100 FORMAT(1X,I5.3,I6.3,I4) 若I=1234,J=-24,K=24689 则输出为: ?1234 ???-24 **** (1)数字在指定的区域内向右端靠齐,如果数字位数比指定的字段宽度w小,则左边补以空格。负数的符号也包含在字段宽度内。 (2)如果数字位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满―*‖符号。 (3)如果数字位数超过了m,则按实际应输出的位数输出(但条件是不能超过w)。m不包括负号所占的一列。 6.1.2 F格式(又叫小数型格式) 一般形式:Fw.d w 各数值占的总位数d 输出数据的小数位数(小数点后的位数)。例1:WRITE(*,100)A,B,C 100 FORMAT(1X,F10.2,F9.3,F8.4) 若A=1234.56,B=3456.78,C=234.56789 则输出:

计算机组成原理习题 第八章输入输出系统

第八章输入输出系统 一、填空题; 1.直接内存访问(DMA)方式中,DMA控制器从CPU完全接管对的控制,数据交换不经过CPU,而直接在内存和之间进行。 2.通道是一个特殊功能的,它有自己的专门负责数据输入输出的传输控制。 3.并行I/O接口和串行I/O接口是目前两个最具有权威性的标准接口技术。 4.在计算机系统中,CPU对外围设备的管理,除了程序查询方式、程序中断方式外,还有方式、方式和方式。 5.程序中断方式控制输入输出的主要特点是,可以使A 和B 并行工作。 6.DMA控制器按其A 结构,分为B 型和C 型两种。 7.通道是一个特殊功能的A ,它有自己的B 专门负责数据输入输出的传输控制,CPU只负责C 功能。 8.通道有三种类型:A 通道、B 通道、C 通道。 9. 二、选择题: 1.下面有关“中断”的叙述,______是不正确的。 A.一旦有中断请求出现,CPU立即停止当前指令的执行,转而去受理中断请求 B.CPU响应中断时暂停运行当前程序,自动转移到中断服务程序 C.中断方式一般适用于随机出现的服务 D.为了保证中断服务程序执行完毕以后,能正确返回到被中断的断点继续执行程 序,必须进行现场保存操作 2.中断向量地址是______。 A. 子程序入口地址 B. 中断服务例行程序入口地址 C. 中断服务例行程序入口地址的地址 D. 主程序返回地址 3.在数据传送过程中,数据由串行变并行或由并行变串行,其转换是通过______。 A. 移位寄存器 B. 数据寄存器 C. 锁存器 D. 指令寄存器 4.下述I/O控制方式中,主要由程序实现的是______。 A. PPU(外围处理机)方式 B. 中断方式 C. DMA方式 D. 通道方式 5.采用DMA方式传送数据时,每传送一个数据要占用______的时间。 A. 一个指令周期 B. 一个机器周期 C. 一个时钟周期 D. 一个存储周期 6.发生中断请求的条件是______。 A. 一条指令执行结束 B. 一次I/O操作开始 C. 机器内部发生故障 D. 一次DMA操作开始 7.中断向量地址是______。 A.子程序入口地址B.中断服务例行程序入口地址 C.中断服务例行程序入口地址的指示器D.中断返回地址 8.下述I/O控制方式,哪种主要由程序实现______。 A. PPU(外围处理机) B. 中断方式 C. DMA 方式 D. 通道方式 9.为了便于实现多级中断,保存现场最有效的方法是采用______。

计算机控制作业答案解析

第一章作业 课本(p.12)题2.计算机控制系统由哪几部分组成?请画出计算机控制系统的组成框图。 答:计算机控制系统由计算机主机系统、模拟量输入输出接口、数字量输入输出接口、键盘显示接口、打印接口和通信接口等部分组成。 课本(p.12)题4. 实时、在线方式和离线方式的含义是什么? 在计算机控制系统中,生产过程和计算机直接连接,并受计算机控制的`方式称为在线方式或联机方式;生产

过程不和计算机直接连接,且不受计算机控制,而是靠人进行联系并做相应操作的方式称为离线方式或脱机方式。 所谓实时,是指信号的输入、计算和输出都要在一定的时间围完成,亦即计算机对输入信息,以足够快的速度进行控制,超出了这个时间,就失去了控制的时机,控制也就失去了意义。实时地概念不能脱离具体的过程,一个在线的系统不一定是一个实时系统,但一个实时控制系统必定是在线系统。 补充题1. 两种USB口的特点及区别?通用指标,传输模式,USB器件,硬件接口。 答: 两种USB的特点: (1)USB接口支持设备的热插拔功能,采用菊花式的连接. (2)USB有2电源线(5V),2数据线,采用差分信号传输,可为连接在其上的设备提供5V电压/100mA电流的供电,最大可提供500mA的电流. (3)一个USB控制器可以连接多达127个外设,而两个外设间的距离(线缆长度)可达5米. 两种USB的区别:协议不同,USB1.1传输速率是12Mbps,USB2.0传输速率是480Mbps.

补充题2. 光驱、硬盘、软驱的总线形式。 答: (1)光驱:IDE,ATA/ATAPI,SCSI,USB,部并行总线. (2)硬盘:IDE,SATA,SCSI,部并行总线. (3)软驱:软驱分置和外置两种,置软驱使用专用的FDD接口, 而外置软驱一般用于笔记本电脑,使用USB接口. 补充题3. I2C、SPI、SCI总线的特点? 答: (1)I2C总线由数据线SDA与时钟线SCL两条线构成通信线路,既可以发送数据也可以接收数据,在CUP与被控IC之间,IC与IC之间都可以进行双向传送,最高传输速度为400Kbps. (2)SPI是一个环形总线结构,是一种标准的四线同步双向串行总线,在SCK的控制下,两个双向移位寄存器进行数据交换,可以同时发出和接收串行数据. (3)SCI是一种通用异步通信接口UART. SCI模块采用标准非归零(NRZ)数据格式,能够实现多CPU之间或同其他具有兼容数据格式SCI端口的外设进行数据通信. 第二章作业 PC总线

九大管理输入输出及工具方法记忆口诀(注释版)

九大管理输入输出及工具法记忆口诀 一、整体管理:项目整体管理就是要决定在什么时间把工作量分配到相应的资源上,有哪些潜在的问题并在其变糟之前积极处理,以及协调各项工作使项目整体上取得一个好的结果,是一项综合性和全局性的工作,是对项目管理过程组中的不同过程和活动进行识别、定义、整合、统一和协调的过程。 (信息法七全有,监控挣值指无家:项目管理信息系统PMIS 项目管理法专家判断监控挣值:挣值分析,计划:预测技术) 1、项目启动:制定项目章程,正式授权项目或者项目阶段的开始。 制定发布项目章程这个文档,正式的批准这个项目(项目的阶段)启动,为项目经理授权。 合书环组得章程 输入:1合同2项目工作说明书3环境的、组织的因素4组织过程资产输出:项目章程 2、编制项目围说明书(初步):编制一个初步的项目围说明书,概要的描 述项目的围。 在项目的前期要编写一个围说明书,当然,这个时候还是比较初步的。 章书环组得初书 输入:1项目章程2项目工作说明书3环境的、组织的因素4组织过程资产 输出:项目围说明书(初步) 3、编制项目管理计划:将确定、编写、集成和协调所有分计划、以形成整体项 目管理计划。

和大家一起编制一个项目管理的计划,为以后项目的执行奠定了基础。 章初环组过效预----项管配管和变控 输入:1项目章程2项目围说明书(初步)3环境的、组织的因素4组织过程资产5其他管理过程的输出6工作绩效信息7预测 输出:项目管理计划配置管理系统变更控制系统) 4、指导和管理项目执行:执行在项目管理计划中所定义的工作以达到项目的目 标。 有了项目管理的计划,并不意味着可以不管了,我们需要按照项目管理计划指导和管理项目的执行。 项管纠预变缺修----交变纠预变缺效 输入:1项目管理计划2已批准的纠正措施已批准的预防措施已批准的变更申请已批准的缺陷预防3确认的缺陷修复 输出:1可交付成果2请求的变更3已实施的纠正措施已实施的预防措施已实施的变更已实施的缺陷修复4工作绩效信息 5、监督控制项目工作:监督和控制项目的启动、计划、执行和收尾过程,以达 到项目计划所定义的项目目标。 在执行的过程中,一定要注意不断的监控,进行对比分析,做好项目的纠偏控制等工作,确保项目正常进行。 项管工效上效报----纠预变缺告 输入:1项目管理计划2工作绩效信息3工作绩效报告 输出:1推荐的纠正措施推荐的预防措施推荐的变更推荐的缺陷修复2项目报告

工业控制系统的输入与输出信号

工业控制系统的输入与输出信号 工业生产过程实现计算机控制的前提是,必须将工业生产过程的工艺参数、工况逻辑和设备运行状况等物理量经过传感器或变送器转变为计算机可以识别的电信号(电压或电流)或逻辑量。 传感器和变送器输出的信号有多种规格,其中毫伏(mV)信号、0~5V电压信号、1~5V 电压信号、0~10mA电流信号、4~20mA电流信号、电阻信号是计算机测控系统经常用到的信号规格。在实际工程中,通常将这些信号分为模拟量信号和数字量信号两大类。 针对某个生产过程设计一套计算机控制系统,必须了解输入输出信号的规格、接线方式、精度等级、量程范围、线性关系、工程量换算等诸多要素。 1.模拟量信号 许多来自现场的检测信号都是模拟信号,如液位、压力、温度、位置、PH值、电压、电流等,通常都是将现场待检测的物理量通过传感器转换为电压或电流信号;许多执行装置所需的控制信号也是模拟量,如调节阀、电动机、电力电子的功率器件等的控制信号。 模拟信号是指随时间连续变化的信号,这些信号在规定的一段连续时间内,其幅值为连续值。 模拟信号有两种类型:一种是由各种传感器获得的低电平信号;另一种是由仪器、变送器输出的4~20mA的电流信号或1~5V的电压信号。这些模拟信号经过采样和A/D转换输入计算机后,常常要进行数据正确性判断、标度变换、线性化等处理。 模拟信号非常便于传送,但它对干扰信号很敏感,容易使传送中信号的幅值或相位发生畸变。因此,有时还要对模拟信号做零漂修正、数字滤波等处理。 模拟量输出信号可以直接控制过程设备,而过程又可以对模拟量信号进行反馈。闭环PID控制系统采取的就是这种形式。模拟量输出还可以用来产生波形,这种情况下D/A变换器就成了一个函数发生器。 模拟信号的常用规格: 1)1~5V电压信号 此信号规格有时称为DDZ-Ⅲ型仪表电压信号规格。1~5V电压信号规格通常用于计算机控制系统的过程通道。工程量的量程下限值对应的电压信号为lV,工程量上限值对应的电压信号为5V,整个工程量的变化范围与4V的电压变化范围相对应。过程通道也可输出1~5V电压信号,用于控制执行机构。 2)4~20mA电流信号 4~20mA电流信号通常用于过程通道和变送器之间的传输信号。工程量或变送器的量程下限值对应的电流信号为4mA,量程上限对应的电流信号为20mA,整个工程量的变化范围与16mA的电流变化范围相对应。过程通道也可输出4~20mA电流信号,用于控制执行机构。 有的传感器的输出信号是毫伏级的电压信号,如K分度热电偶在l000℃时输出信号为41.296mV。这些信号要经过变送器转换成标准信号(4~20mA)再送给过程通道。热电阻传感器的输出信号是电阻值,一般要经过变送器转换为标准信号(4~20mA),再送到过程通道。 对于采用4~20mA电流信号的系统,只需采用250Ω电阻就可将其变换为1~5V直流电压信号。 有必要说明的是,以上两种标准都不包括零值在内,这是为了避免和断电或断线的情况混淆,使信息的传送更为确切。这样也同时把晶体管器件的起始非线性段避开了,使信号值与被测参数的大小更接近线性关系,所以受到国际的推荐和普遍的采用。

相关主题
文本预览
相关文档 最新文档