西门子张家口授权代理商
在控制(或采样)程序中,经常需要通过串口发送或者接收数据,而且一般都会设置采样周期,那么在一个周期中可以通过串口传送多少字节的数据呢?下面我们举例说明:
串口参数: 波特率:9600bps, 8个数据位, 1个停止位, 无奇偶校验
采样周期: T=100ms
则在每个控制内能传送的字节数为:
N=Baudrate*T/(DataBit+StopBit) = 9600*0.1/(8+1)=106.7
再考虑到程序本身数据处理及其它语句需要的时间,每个控制约可传输 90个字节。
接收数据也可依此估计。
注意:程序中有物理存盘(或读盘)操作需要较长时间
串行通讯的基本概念:与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。
一条信息的各位数据被同时传送的通讯方式称为并行通讯。并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。
一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。
串行通讯又分为异步通讯和同步通讯两种方式。在单片机中,主要使用异步通讯方式。
MCS_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和一根输入线。数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD)。串行通讯中主要有两个技术问题,一个是数据传送、另一个是数据转换。数据传送主要解决传送中的标准、格式及工作方式等问题。数据转换是指数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据。
单工、半双工和全双工的定义 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。 如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。 线就是二线全双工信道。 由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。 |
S7-200和200SMART的子程序多16个输入、输出参数。使用间接寻址可以显著减少输入、输出参数的个数,不再受上述的限制。 下面举一个简单的例子。 子程序“异或运算”对V存储器中连续的若干个字节作异或运算,下面给出了子程序的局部变量和STL程序。 子程序中的BTI指令用于将数据类型为字节的输入参数“字节数B”转换为数据类型为整数的临时变量“字节数I”,用来做FOR指令的当前循环计数器。 输入参数“地址指针”是需要异或运算的数据区的起始地址。子程序中的“*#地址指针”是输入参数“地址指针”指定的地址中变量的值。在循环程序执行的过程中,该指针中的地址值是动态变化的。 下图是主程序中调用“异或运算”子程序的程序。调用时指定的“地址指针”的值&VB10是源地址的初始值,即数据字节从VB10开始存放;需要异或运算的数据的字节数为4,异或运算的结果存放在VB14中。 实际上该子程序的输入、输出参数还可以进一步地简化:将保存运算结果的字节放在地址指针所指的地址区的个字节,需要异或运算的字节数放在第2个字节,需要运算的数据从第3个字节存放。这样就只需要一个输入参数了,当然程序要做相应的改动。但是程序的输入、输出接口没有个方案直观 |
打开软件,在上面的菜单栏中找到“Tools”工具,点击一下,会出现一个对话框, |