7 输入输出控制(例子)
- 格式:pdf
- 大小:213.74 KB
- 文档页数:5
S7-300/400 PLC模拟量输入/输出的量程转换SLC A&D CSMarch, 20051模拟量输入/输出量程转换的概念 (3)2S7-300/400 PLC模拟量输入/输出模板 (3)2.1需要使用的模板 (3)2.2涉及的信号类型 (3)3STEP 7中模拟量输入/输出的编程 (3)3.1FC105/FC106在哪里 (3)3.2FC105/FC106功能描述 (5)3.2.1FC105功能描述 (5)3.2.2FC106功能描述 (5)3.3FC105/FC106参数定义 (6)3.3.1FC105 的参数定义 (6)3.3.2FC106的参数定义 (6)3.4例子程序 (7)3.4.1FC105例子程序 (7)3.4.2FC106例子程序 (8)1模拟量输入/输出量程转换的概念实际的工程量,如压力、温度、流量、物位等要采用各种类型传感器进行测量。
传感器将输出标准电压、电流、温度、或电阻信号供PLC采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量——整形数(INTEGER)。
在PLC程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值(对应于传感器的量程)。
而经程序运算后得到的结果要先转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。
这样就需要在程序中调用功能块完成量程转换。
如一个压力调节回路中,压力变送器输出4-20mA DC信号到SM331模拟量输入模板,SM331模板将该信号转换成0-27648的整形数,然后在程序中要调用FC105将该值转换成0-10.0(MPa)的工程量(实数),经PID运算后得到的结果仍为实数,要用FC106转换为对应阀门开度0-100%的整形数0-27648后,经SM332模拟量输出模板输出4-20mA DC信号到调节阀的执行机构。
本文主要讨论S7-300/400 PLC编程中模拟量的量程转换。
前面的几个例子都用到了输出函数printf,例1-3还用到了输入函数scanf,这里我们先简单介绍一下它们的格式,以便后面使用。
scanf和printf这两个函数分别称为格式输入函数和格式输出函数。
其意义是按指定的格式输入输出值。
因此,这两个函数在括号中的参数都由以下两部分组成:1) 格式控制串:格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。
在printf函数中可以在格式控制串内出现非格式控制字符,这时在显示屏幕上会显示源字符串。
各种类型的格式表示方式请参考:C语言格式输出函数printf()详解。
在scanf函数中也可以在格式控制串内出现非格式控制符,这时会将输入的数据以该字符为分隔。
各种类型的格式表示方式请参考:C语言scanf()函数。
2) 参数表:参数表中给出了输入或输出的变量。
当有多个变量时,用英文逗号(,)分开。
例如:1.printf("sine of %lf is %lf\n",x,s);2.// %lf为格式字符,表示按双精度浮点数处理,它在格式串中两次现,对应了x和s两个变量3.// 其余字符为非格式字符则照原样输出在屏幕上。
4.scanf("%d %fa%c",&intNum,&floatNum,&c);5.// %d, %f, %c为格式字符6.// 表示将输入的数据分别以整数、浮点数和字符形式赋值给变量intNum, floatNum,c7.// 其中的空格和a为分隔符8.// 变量intNum, floatNum,c都有一个'&'符号,表示取地址【例1-4】对例1-3稍加修改,在printf中使用多个参数,在scanf中使用'|'作为分隔符。
1.#include<stdio.h>// 包含stdio.h头文件2.3.int max(int,int);// 函数声明4.5.int main(){6.int a, b, n;// 声明两个整型变量7.printf("Input two integers: ");// 以空格为分隔8.// 以'|'为分隔符,将输入的两个整数分别赋值给a, b9.scanf("%d|%d",&a,&b);10.// 以整数形式输出a、b和最大值,a, b, max(a,b)为参数列表11.n =max(a, b);12.printf("The max between %d and %d is %d.\n", a, b, n);13.return0;14.}15.16.// 函数定义17.int max(int num1,int num2){// num1, num2为形式参数(形参)18.if(num1>num2){// 如果num1大于num219.return num1;// 返回num1并结束max函数20.}else{// 如果num2大于num121.return num2;// 返回num2并结束max函数22.}23.}运行结果:Input two integers: 12|34↙The max between 12 and 34 is 34.上面例中程序的功能是由用户输入两个整数,程序执行后输出其中较大的数。
Fortran输⼊输出格式控制Open, Read and Write in Fortran1: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语句,则应在⼦程序定义语句之后)。
S7-300/400 PLC模拟量输入/输出的量程转换SLC A&D CSMarch, 20051模拟量输入/输出量程转换的概念 (3)2S7-300/400 PLC模拟量输入/输出模板 (3)2.1需要使用的模板 (3)2.2涉及的信号类型 (3)3STEP 7中模拟量输入/输出的编程 (3)3.1FC105/FC106在哪里 (3)3.2FC105/FC106功能描述 (5)3.2.1FC105功能描述 (5)3.2.2FC106功能描述 (5)3.3FC105/FC106参数定义 (6)3.3.1FC105 的参数定义 (6)3.3.2FC106的参数定义 (6)3.4例子程序 (7)3.4.1FC105例子程序 (7)3.4.2FC106例子程序 (8)1模拟量输入/输出量程转换的概念实际的工程量,如压力、温度、流量、物位等要采用各种类型传感器进行测量。
传感器将输出标准电压、电流、温度、或电阻信号供PLC采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量——整形数(INTEGER)。
在PLC程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值(对应于传感器的量程)。
而经程序运算后得到的结果要先转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。
这样就需要在程序中调用功能块完成量程转换。
如一个压力调节回路中,压力变送器输出4-20mA DC信号到SM331模拟量输入模板,SM331模板将该信号转换成0-27648的整形数,然后在程序中要调用FC105将该值转换成0-10.0(MPa)的工程量(实数),经PID运算后得到的结果仍为实数,要用FC106转换为对应阀门开度0-100%的整形数0-27648后,经SM332模拟量输出模板输出4-20mA DC信号到调节阀的执行机构。
本文主要讨论S7-300/400 PLC编程中模拟量的量程转换。
STEP 7 (TIA Portal) 中使用 S7-1200/1500 控制器,怎样将整型转化为 实数或将实数转化为整型用于模拟量输入和输出?新手必读: 新手必读! 文献涉及产品 可以使用 SCALE_ X “缩放” 和 NORM_X “标准化”来转化模拟量值 。
这些功能块位于 STEP 7 (TIA Portal) “指令”任务卡中,“基本指令”下的“转换操作”中。
功能与参数的详细说明参考 STEP 7 在线帮助。
若要取 得某个功能块的在线帮助,需选中该块 ( 如 SCALE_X ) 然后按下“F1” 键。
STEP7(TIA Portal)的用户程序中提供了模拟值转换的指令。
说明: 可以使用 SCALE_ X “缩放” 和 NORM_X “标准化”来转化模拟量值 。
这些功能块位于 STEP 7 (TIA Portal) “指令”任务卡中,“基本指令”下的“转换操作”中。
功能与参数的详细说明参考 STEP 7 在线帮助。
若要取 得某个功能块的在线帮助,需选中该块 ( 如 SCALE_X ) 然后按下“F1” 键。
下面的例子中假设测量范围是单极性的。
整数值介于 0 到 27648 之间。
下面的值是由转换(例如,通过电流测量转换为温度)所产生的:整形值 (模拟值) 0 6912 13824 20736 27648测量值 (在 0-20mA 范围) 0.0 5.0 10.0 15.0 20.0测量值 (在 4-20mA 范围) 4.0 8.0 12.0 16.0 20.0 物理值 20° C 52.5° C 85° C 117.5° C 150° C例子 1 - 模拟值转换为物理值(模拟量输入,以转换温度为例) 上限最大 27648 和下限最小 0 转换后对应最大 150° C 和最小 20° C 。
由于输入值是整数数据类型,输出值 被转换为实数数据类型,功能块 NORM_X 可将整数转化为实数。
S7-300/400 PLC模拟量输入/输出的量程转换SLC A&D CSMarch, 20051模拟量输入/输出量程转换的概念 (3)2S7-300/400 PLC模拟量输入/输出模板 (3)2.1需要使用的模板 (3)2.2涉及的信号类型 (3)3STEP 7中模拟量输入/输出的编程 (3)3.1FC105/FC106在哪里 (3)3.2FC105/FC106功能描述 (5)3.2.1FC105功能描述 (5)3.2.2FC106功能描述 (5)3.3FC105/FC106参数定义 (6)3.3.1FC105 的参数定义 (6)3.3.2FC106的参数定义 (6)3.4例子程序 (7)3.4.1FC105例子程序 (7)3.4.2FC106例子程序 (8)1模拟量输入/输出量程转换的概念实际的工程量,如压力、温度、流量、物位等要采用各种类型传感器进行测量。
传感器将输出标准电压、电流、温度、或电阻信号供PLC采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量——整形数(INTEGER)。
在PLC程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值(对应于传感器的量程)。
而经程序运算后得到的结果要先转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。
这样就需要在程序中调用功能块完成量程转换。
如一个压力调节回路中,压力变送器输出4-20mA DC信号到SM331模拟量输入模板,SM331模板将该信号转换成0-27648的整形数,然后在程序中要调用FC105将该值转换成0-10.0(MPa)的工程量(实数),经PID运算后得到的结果仍为实数,要用FC106转换为对应阀门开度0-100%的整形数0-27648后,经SM332模拟量输出模板输出4-20mA DC信号到调节阀的执行机构。
本文主要讨论S7-300/400 PLC编程中模拟量的量程转换。
第八章输入/输出处理输入/输出处理是程序设计中非常重要的一部分,比如从键盘读取数据、从文件中读取数据或向文件中写数据等等,而键盘、监视器、磁盘存储设备都称为输入、输出源。
Java把这些不同类型的输入、输出源抽象为流(stream)。
Java程序可以用输入流从一些输入源读数据,用输出流向一些输出源写数据。
Jdk 提供了包java.io,其中包括一系列的类来实现输入/输出处理。
从jdk1.1开始,java.io包中的流包括字节流和字符流。
§8.1输入/输出字节流概述§8.1.1 I/O字节流的层次结构在java中,所有的输入流都是从抽象类InputStream继承而来,所有的输出流都是从OutputStream 继承而来。
以下给出了java语言IO包中输入/输出处理类之间的继承关系。
输入、输出字节流的类层次一、简单的输入、输出流1.FileInputStream和FileOutputStream:用于本地文件系统的文件读写。
2.PipedInputStream和PipedOutputStream:用于完成管道的输入和输出。
管道用于将一个程序(或线程或代码块)的输出引导进另一个程序(或线程或代码块)的输入,所有PipedInputStream必须连接到一个PipedOutputStream所有PipedOutputStream必须连接到一个PipedInputStream。
3.ByteArrayInputStream和ByteArrayOutputStream:读写内存数据。
4.SequenceInputStream:用于将多个输入流连接到一个输出流。
5.StringBufferInputStream:用于读取StringBuffer类可变字符串中的数据。
二、过滤流1.DataInputStream和DataOutputStream:用一种与机器无关的格式读写java语言的基本数据类型。
第九课输入输出控制方式[课题] 输入输出控制方式[课型] 新课[授课课时][教学目标]理解输入输出控制方式的基本概念,理解中断的执行过程[教学重点]中断的执行过程[教学难点]中断的执行过程[教学过程]一、输入输出控制方式CPU控制输入输出设备工作的方式有三种:程序查询方式、中断方式和直接存储器访问方式。
二、程序查询方式程序查询方式是在程序控制下CPU与外设之间交换数据。
其工作过程首先是用程序向外设发出进行数据传送的控制信号,然后从外设读取外设状态,检查是否可以进行数据传送,若外设准备就绪,则进行数据传送;否则反复读外设状态并检查,直到外设准备就绪再进行数据传送。
程序查询方式主要用软件方式实现,它的特点是CPU工作效率低。
三、中断方式中断是主机在执行程序过程、中,遇到突发事件而中断程序的政党执行,转去对突发事件的处理,待处理完成后返回原程序继续执行。
计算机中使用中断方式由软件和硬件共同实现。
软件部分指中断处理程序。
硬件部分指中断控制电路,其作用是负责对中断请求、中断响应等进行相应的处理,保证中断过程的政党进行。
中断过程包括中断请求、中断响应、中断处理、中断返回等步骤。
(1)中断请求。
中断源向CPU中的控制器发出中断请求。
(2)中断响应。
中断响应过程中把被中断的程序的断点地址保存起来,把中断处理程序入口地址送入指令指针寄存器,开始执行中断处理程序。
(3)中断处理。
根据不同的中断原因,中断处理程序执行相应的处理,中断处理程序运行结束后转入中断返回。
(4)中断返回。
中断返回就是恢复断点。
四、直接存储器访问方式直接存储器访问方式(DMA)指高速外设与内存之间直接进行数据交换,不通过CPU,并且CPU不参加数据交换的控制。
DMA方式下高速外设和内存之间进行数据传输需要使用总线,所以DMA方式下要解决的问题主要是总线使用权的转移。
总线使用权一般情况下由CPU掌握,在DMA期间总线使用权交给DMA控制器。
DMA方式由硬件实现。
第七章输入输出系统第一节基本的输入输出方式一、外围设备的寻址1.统一编址:将输入输出设备中控制寄存器、数据寄存器、状态寄存器等与内存单元一样看待,将它们和内存单元联合在一起编排地址,用访问内存的指令来访问输入输出设备接口的某个寄存器,从而实现数据的输入输出。
2.单独编址:将输入输出设备中控制寄存器、数据寄存器、状态寄存器单独编排地址,用专门的控制信号进行输入输出操作。
3.CPU与外围设备进行通信有三种类型:(1)CPU向外围设备发出操作控制命令。
(2)外围设备向CPU提供状态信息。
(3)数据在CPU与外围设备之间的传递。
历年真题1.对外设统一编址是指给每个外设设置一个地址码。
(2002年)【分析】CPU与外设之间的信息传送是通过硬件接口来实现的,各种外设的硬件接口上又都包含有多个寄存器,如控制寄存器、数据寄存器、状态寄存器等。
统一编址是将外设接口上的各种寄存器等同于内存储器的存储单元,通过使用访问内存单元的指令来访问外设接口上的各个寄存器,这样就可以使用访存指令来访问外设,输入输出操作简单,程序设计比较简便。
由于外设接口上的寄存器种类和数量通常不止一个,所以一个外设至少对应一个以上的内存地址。
【答案】对外设统一编址是将外设接口上的寄存器等同内存单元,给每个外设设置至少一个地址码。
二、外围设备的定时1.外围设备的定时方式有异步传输方式和同步定时方式两种。
2.实现输入输出数据传输的方式主要有:程序控制方式、直接存储访问(DMA)方式、通道方式。
程序控制方式又可分为程序查询方式和中断方式两种。
历年真题1.对I/O数据传送的控制方式,可分为程序中断控制方式和独立编址传送控制方式两种。
(2001年)【分析】对1/O数据传送的控制方式,可分为程序直接控制方式、程序中断控制方式、DMA控制方式、通道控制方式等。
程序中断控制方式只是其中的一种方法,独立编址是指对1/O设备的控制寄存器、数据寄存器、状态寄存器等单独进行地址编排,使用专门的指令对其进行操作,可用在各种数据传送的控制方式中。