文档库 最新最全的文档下载
当前位置:文档库 › JasperReport5.6.1编码及Studio使用

JasperReport5.6.1编码及Studio使用

JasperReport5.6.1编码及Studio使用
JasperReport5.6.1编码及Studio使用

JasperReport5.6.1 编码及Studio使用

目录

目录

1.JasperReport编码 (1)

1.1.加入Jar包 (1)

1.2.生成报表传给客户端 (1)

1.3.报表另存为多种格式 (2)

2.JasperSoft Studio报表设计器使用 (5)

2.1.简介 (5)

2.1.1.报表生命周期 (5)

2.1.2.界面 (6)

2.2.基本使用 (7)

2.2.1.配置数据连接(数据适配器) (7)

2.2.2.创建新报表 (12)

2.2.3.设置查询语句 (15)

2.2.4.报表各部分组成 (16)

2.2.5.制作明细表 (16)

2.2.5.1.添加表头 (16)

2.2.5.2.添加字段 (18)

2.2.5.3.设定PDF字体 (19)

2.2.5.4.设定边框 (20)

2.2.5.5.设定栏高 (21)

2.2.5.6.设置字段域 (22)

2.2.6.参数的使用 (23)

2.2.6.1.添加参数 (23)

2.2.6.2.程序中传递参数 (24)

2.2.6.3.报表模板接收参数 (24)

2.2.7.自定义变量的使用 (24)

2.2.7.1.顺序号 (24)

2.2.7.2.小计 (26)

2.2.7.3.合计 (28)

2.2.7.3.1.表头合计 (28)

2.2.7.3.2.表尾合计 (28)

2.3.报表设计器进阶 (30)

2.3.1.分组报表 (30)

2.3.2.图形报表 (33)

2.3.3.子报表 (35)

2.3.3.1.制作父报表 (35)

2.3.3.2.制作子报表 (36)

2.3.3.3.子报表自适应行高 (41)

1.JasperReport编码

下面详细说明一下如何利用JasperReport实现自己系统中的报表功能。

1.1. 加入Jar包

首先在工程中加入核心类包。

解压从官网上下载的压缩包,在dist目录中可以找到“jasperreports-5.6.1.jar”和“jasperreports-fonts-5.6.1.jar”,复制到项目WEB-INF/lib下,加入到Eclipse的构建配置中。

再加入JasperReport运行所需的支持包。建议将“lib”文件夹下的所有jar文件都复制到项目的lib文件夹中。如果遇到JasperReport所提供的jar包和系统原有Jar包冲突,建议保留版本较新的jar。

1.2. 生成报表传给客户端

JasperReport可以将生成的报表以文件流的形式传送给客户端浏览器。

官方提供的生成方法,是先填充报表模板,然后采用各类Export对象输出。但是我没有实验成功……欢迎各路高手指教,我可以修改此部分的说明。

我采用JasperReportsUtils提供的方法生成(spriing包中提供)报表。

建议可以采用html或者pdf格式输出。以下是代码实例:

//创建报表参数Map对象,需要传入报表的参数,均需要通过这个map对象传递

Map parameters = new HashMap();

//设置报表的默认类型,此处设置为html,防止传入空值

String report_type="html";

if(request.getParameter("type")!=null&&!"".equals(report_type)){ report_type =request.getParameter("type");

}

//读取当前的查询子句,查询子句已经作为变量,设置在报表模板中了

String whereValue= request.getParameter("wherevalue");

parameters.put("whereValue", " where "+whereValue);

//读取报表模板文件

File reportFile = new File("d:/test.jasper");

//创建JDBC连接。本例使用JDBC数据源,DataSource从Hibernate中获取。

DataSource ds = (DataSource)

AppContextHolder.getAppContext().getBean("dataSource");

Connection conn = ds.getConnection();

//报表文件临时存储设置,切记!!此临时文件夹一定要真实存在!!!

JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "d:/cacheDir");

parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);

virtualizer.setReadOnly(true);

JasperPrint jasperPrint =

JasperFillManager.fillReport(reportFile.getPath(), parameters, conn);

JRAbstractExporter exporter = null;

if("pdf".equals(report_type)){

response.setContentType("application/pdf");

exporter = new JRPdfExporter();

}else if("html".equals(report_type)){

response.setContentType("text/html");

exporter = new HtmlExporter();

}

JasperReportsUtils.render(exporter, jasperPrint,

response.getOutputStream());

exporter=null;

// manually cleaning up

virtualizer.cleanup();

//关闭JDBC连接

conn.close();

1.3. 报表另存为多种格式

JasperReport支持将报表导出为多种格式保存,可以将报表导出到指定格式,生成指定格式的实体文件;也可以以文件流的形式传输给客户端浏览器,由用户自行保存。

本例提供以文件流形式返回客户端进行保存的实例代码:

//创建报表参数Map对象,需要传入报表的参数,均需要通过这个map对象传递

Map parameters = new HashMap();

String type=request.getParameter("type");

//读取当前的查询子句,查询子句已经作为变量,设置在报表模板中了

String whereValue= request.getParameter("wherevalue");

parameters.put("whereValue", " where "+whereValue);

//读取报表模板文件

File reportFile = new File("d:/test.jasper");

//创建JDBC连接。本例使用JDBC数据源,DataSource从Hibernate中获取。

DataSource ds = (DataSource)

AppContextHolder.getAppContext().getBean("dataSource");

Connection conn = ds.getConnection();

//报表文件临时存储设置,切记!!此临时文件夹一定要真实存在!!!

JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "d:/cacheDir");

parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);

virtualizer.setReadOnly(true);

JasperPrint jasperPrint =

JasperFillManager.fillReport(reportFile.getPath(), parameters, conn);

JRAbstractExporter exporter = null;

if ("pdf".equals(type)){//生成PDF格式的报表。此功能已通过测试。

exporter = new JRPdfExporter();

response.reset();

response.setContentType("application/pdf");

response.setHeader("Content-Disposition", "attachment;filename="+new String(rl.getReport_name().getBytes("gbk"), "iso8859-1")+".pdf");//打开,保存}else if ("rtf".equals(type)){//生成RTF格式的报表。此功能已通过测试。

exporter = new JRRtfExporter();

response.reset();

response.setContentType("application/msword");

response.setHeader("Content-disposition","attachment;filename="+new String(rl.getReport_name().getBytes("gbk"), "iso8859-1")+".rtf");

}else if ("xml".equals(type)){//生成XML格式的报表。此功能已通过测试。

exporter = new JRXmlExporter();

response.reset();

response.setHeader("Content-Disposition",

"attachment;filename=\""+new String(rl.getReport_name().getBytes("gbk"),

"iso8859-1")+".xml\"" );//打开保存

response.setCharacterEncoding("GBK");

exporter = new JRXlsExporter();

response.reset();

response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-Disposition",

"attachment;filename=\""+new String(rl.getReport_name().getBytes("gbk"),

"iso8859-1")+".xls\"" );//打开保存

}else if ("csv".equals(type)){//生成CSV格式报表。乱码,无法使用

exporter=new JRCsvExporter();

response.reset();

response.setContentType("application/x-msdownload; charset=\"GBK\""); response.setHeader("Content-Disposition",

"attachment;filename=\""+new String(rl.getReport_name().getBytes("gbk"),

"iso8859-1")+".csv\"" );//打开保存

response.setCharacterEncoding("GBK");

}else if ("odt".equals(type)){//此段代码未测试

exporter = new JROdtExporter();

response.reset();

response.setContentType("application/x-msdownload");

response.setHeader("Content-Disposition",

"attachment;filename=\""+new String(rl.getReport_name().getBytes("gbk"),

"iso8859-1")+".odt\"" );//打开保存

}

JasperReportsUtils.render(exporter, jasperPrint,

response.getOutputStream());

exporter=null;

// manually cleaning up

virtualizer.cleanup();

conn.close();

2.JasperSoft Studio报表设计器使用

2.1. 简介

从5.5版本开始,Jaspersoft Studio将取代iReport 成为JasperReports官方设计器。iReport 维护截止日期到2015年底,意味着不会再有新的功能增加进iReport,但会做一些关键bug的修复、更新。所幸的是基于eclipse的Jaspersoft Studio同样开源、免费!

Jaspersoft Studio是一个专为JasperReports报表引擎而开发的报表设计器,是iReport设计器的一个完整重构,基于Eclipse平台实现。它能够让你创建包含图表、图片、子报表、交叉表等非常复杂的布局。可以通过JDBC、TableModels、JavaBeans、XML、Hibernate、CSV或自定义数据源来读取数据。可以将报表输出成PDF、RTF、XML、XLS、CSV、HTML、XHTML、text、DOCX或OpenOffice。

2.1.1.报表生命周期

iReport和JasperSoft Studio中的报表的生命周期是相同的。

当你使用iReport或JasperSoft Studio做报表时,要创建一个JRXML文件,该文件是包含报表布局定义的XML文档。布局是完全可视化,这样你就可以忽略JRXML文件的基础结构。执行报告之前,JRXML 必须编译成名为Jasper的二进制文件。Jasper文件就是应用程序生成报表所需要的。

有许多数据源类型。您可以从SQL查询,XML文件,csv文件,HQL(Hibernate查询语言)查询,JavaBeans集合等。如果你没有一个合适的数据源,JasperReports的允许你编写自己的自定义数据源。通过Jasper文件和数据源,JasperReports 就能生成最终用户想要的文档格式。

iReport和JasperSoft Studio允许您配置数据源,并使用它们来测试您的报表。在许多情况下,数据驱动向导可以帮助您快速设计您的报表。iReport包括JasperReports引擎本身,可以让您预览报表输出,测试和优化您的报表。

2.1.2.界面

Jaspersoft Studio安装完毕后,会在桌面放置一个图标,双击此图标,即可运行报表设计器。下面可以看到JasperSoft Studio界面:

Report editing area(主编辑区域)中,您直观地通过拖动,定位,对齐和通过Designer palette(设计器调色板)对报表元素调整大小。

JasperSoft Studio有一个多标签编辑器,Design,Source和Preview:

Design tab:当你打开一个报告文件,它允许您以图形方式创建报表选中

Source tab:包含用于报表的JRXML源代码。

Preview tab:允许在选择数据源和输出格式后,运行报表预览。

很多页面可以查看数据:

Repository Explorer view:包含JasperServer生成的连接和可用的数据适配器列表

Project Explorer view:包含JasperReports的工程项目清单

Outline view:在大纲视图中显示了一个树的形式的方式报告的完整结构。

Properties view:通常是任何基于Eclipse的产品/插件的基础之一。它通常被填充与实际所选元素的属性的信息。这就是这样,当你从主设计区域(即:一个文本字段)选择一个报表元素或从大纲,视图显示了它的信息。其中一些属性可以是只读的,但大部分都是可编辑的,对其进行修改,通常会通知更改绘制的元素(如:元素的宽度或高度)。

Problems view:显示的问题和错误,例如可以阻断报告的正确的编译。

最后,Report state summary提供了有关在报表编译/填充/执行统计用户有用的信息。错误会显示在这里。

2.2. 基本使用

2.2.1.配置数据连接(数据适配器)

要做报表,先要配置一个数据库连接,否则咱们报表里的数据从哪里来涅?

在左侧Repository Explorer区中,在“Data Adapter”上点击鼠标右键,选择“Create Data Adapter”,创建我们自己的“数据适配器”。

系统显示如下界面:

此处可以对数据适配器配置文件进行重命名。我无所谓,没改名,Next!

这一步,选择数据源的类型。这里有各种你喜欢的或者你不喜欢的数据源。我是个传统的人……我用关系型数据库,所以我选择“Database JDBC Connection”。Next!

这一步,需要:

(1)给创建的这个数据连接起个名字;

(2)根据数据库选择驱动类型;

终于,对于数据库,这次我们基本上啥也不用干了。Jaspersoft Studio已经内置了很多常用数据库的驱动,使用的时候直接选就可以了。JDBC驱动列表里连Hadoop Hive什么的新潮驱动都有,基本上做到了只有你不会的,没有我没有的……

当然,如果这还满足不了你的话,你还可以添加你指定的JDBC驱动jar包。

(3)修改一下数据连接URL,要符合你实际的数据库IP、服务名什么的;

(5)测试一下,如果能连接成功,就可以做后面的工作了。

搞定之后,点击“Finish”,把我们的劳动成果保存下来。

2.2.2.创建新报表

Let’s begin!!!先来创建一个新的空白报表开练!点击菜单中的“文件”—“New”,系统会创建一个新的空白报表模板。

或者点击工具栏上的图标。

Jaspersoft Studio提供了丰富多样的报表和图表,几乎可以满足日常工作的各种需要。

为了便于讲解,我们选择最标准的A4竖向空白报表。

系统显示“名称和位置”界面,可以在这里设置报表的名称,以及报表文件存储的位置。

设置完毕,点击“Next”,系统进入“数据源”界面。可以选择已经配置在系统中的数据源,或者点击“New”按钮,创建新的数据源连接。可以在此处设置查询语句,查询需要编制报表的原始数据。

设置完毕,点击“Next”,系统进入“完成”界面。点击“Finish”按钮,即完成了报表的生成。

空白报表的界面如下。

2.2.

3.设置查询语句

数据库连接设定完毕后,就可以通过SQL查询语句,查询出指定的数据,用以设置、填充报表了。

点击报表设计工作区中,工具栏上的“DataSet and Query editor dialog”按钮,如下图,系统会显示“DataSet and Query Dialog”界面。

用户可以在SQL查询语句输入窗口中,输入需要查询数据的查询语句,点击右上角的“Read Fields”按钮,界面下方的字段列表中,就会显示此查询语句中所涵盖的所有字段的列表。在后面的报表设计中,我们就可以直接使用这些字段了。

注意:在“Fields”列表中,只保留报表中使用的字段,其他用不到的字段最好用“Delete”删掉,防止由于数据表变化,导致报表模板中的字段设置与数据表对应不上,导致报表报错。

输入完毕后,点击“OK”按钮,系统即会把查询语句保存在报表模板中。

2.2.4.报表各部分组成

下面,就可以正式开始制作报表模板了。

首先,需要了解一下报表各部分的组成:

1、Title : 报表的表头。只在首页打印一次。

2、PageHeader : 报表的页首。每页都打印。

3、ColumnHeader : 报表的行首,通常用来定义行

的字段名称。每页都打印。

4、Detail : 报表的内容。根据数据数量,自动循

环输出。

5、ColumnFooter : 报表的行尾,可用来告知报表

的一些参数,诸如页码等。每页都打印。

6、PageFooter : 报表的页尾。每页都打印。

7、LastPageFooter : 最后页的页尾。只在最后页打

印一次。

8、Summary : 计算用。

2.2.5.制作明细表

2.2.5.1. 添加表头

我们以制作明细表式的报表为例。我们可以在右侧“Elements”中找到需要的所有组件。

首先需要设定表头。表头中,一般都是报表的名称,所以添加不可修改的文字即可。

如果表头只在第一页输出,则需要将表头文字放在“Title”区;如果表头每页都要输出,则应该放在“pageHeader”,即“页首”区。

点击“Elements”上的“Static Text”组件,如下图。

然后将组件拖拽到“Title”区或“pageHeader”区中,即可将组件加入到此区域中。

在此文字输入区域中输入表头名称即可。

输入完毕,需要设置文字属性,对文字进行排版。在右下角的“Properties”区中,可以设置静态文本框的位置、边框、文字属性等等。点击相应的页签,即可进行对应的设置。

2.2.5.2. 添加字段

设置完表头,即可设置报表需要输出的内容。首先可以设定需要输出的字段。

在左侧“Outline”区中,展开“Fields”项,即可看到此时报表模板中所能访问的所有字段。

如果没有输入SQL语句,或者SQL语句中包含参数,此处不会自动连接数据库更新字段。此时可以在“Fields”节点上点击鼠标右键,点击弹出菜单中的“Create Field”手工添加字段。但是要注意,字段名称一定要和数据库中的一致,否则会产生错误。

旋转编码器原理及其应用

旋转编码器的原理及其应用 摘要:本文介绍了常用编码器的原理、分类以及其应用的注意事项,并以德国P+F公司的编码器产品为参照,重点介绍了增量型编码器和绝对值型编码器的原理及应用,其中绝对值型编码器中以格雷码为主作了详细的介绍。 关键词:编码器增量型绝对值格雷码 一、前言 在自动化领域,旋转编码器是用来检测角度、速度、长度、位移和加速度的传感器。依靠轴杆、齿轮、测量轮或绳缆的控制,线性的移动能被检测。编码器也把实际的机械参数值转换成电气信号,这些电气信号可以被计数器、转速表、PLC和工业PC处理。 二、功能原理 由玻璃或塑料制成的圆盘被分成透明和非透明的区域,如果一个光源固定在圆盘的一侧,光敏元件固定在另一侧,旋转的移动没有接触就可获得。如果一束光打在透明的区域,接收器接收到,产生脉冲,当光束被 黑色区域隔断式,不产生脉冲。发光二极管 通常用作光源,发光范围在红外线范围内, 光敏二极管或光敏晶体管作为接收器。(见 右图) 如果按照此原理没有其它功能加入的 话,仅能推论出圆盘在转动,旋转的感应或 绝对值位置不能被确定。 编码器根据它们的功能原理和机械形式 和安装系统有不同的区别。 1、功能原理 1.1增量型旋转编码器 轴的每圈转动,增量型编码器提供一定数量的脉冲,周期性的测量或者单位时间内的脉冲数可以用来测量移动的速度。如果在一个参考点后面脉冲数被累加,计算值就代表了转动角度或行程的参数。双通道编码器输出脉冲之间相差900。能使接收脉冲的电子设备接收轴的旋转感应信号,因此可用来实现双向的定位控制。另外,三通道增量型编码器每一圈产生一个称之为零位信号的脉冲。 旋转增量型编码器以转动时输出脉冲,通过计数设备来计算其位置,当编码器不动或停电时,依靠计数设备的内部记忆来记住位置。这样,当停电后,编码器不能有任何的移动,当来电工作时,编码器输出脉冲过程中,也不能有干扰而丢失脉冲,不然,计数设备计算并记忆的零点就会偏移,而且这种偏移的量是无从知道的,只有错误的产生结果出现后才能知道。 解决的方法是增加参考点,编码器每经过参考点,将参考位置修正进计数设备的记忆位置。在参考点以前,是不能保证位置的准确性的。为此,在工控中就有每次操作先找参考点,开机找零等方法。 这样的方法对有些工控项目比较麻烦,甚至不允许开机找零(开机后就要知道准确位置),于是就有了绝对编码器的出现。 1.2绝对值旋转编码器 绝对编码器光码盘上有许多道光通道刻线,每道刻线依次以2线、4线、8线、16线编排,这样,在编码器的每一个位置,通过读取每道刻线的通、暗,获得一组从2的零次方到2的n-1次方的唯一的2进制编码(格雷码),这就称为n位绝对编码器。这样的编码器是由光电码盘的机械位置决定的,它不受停电、干扰的影响。特别是在定位控制应用中,绝对值编码器减轻了电子接收设备的计算任务,从而省去了复杂的和昂贵

曼彻斯特编码模拟

信息技术学院计算机网络基础课程设计报告 学号: 姓名: 班级:滨江<1>班 题号:03 题目:曼彻斯特编码模拟 分值:10分 目录 一、理论基础与原理分析 (1)

课程设计报告浙江中医药大学信息技术学院计算机网络课程组 二、数据结构与算法分析 (2) 三、测试数据与结果分析 (3) 四、课程设计心得与体会 (4) 五、课程设计程序源代码 (5) 2

课程设计报告理论基础与原理分析 一、理论基础与原理分析 (归纳整理相关知识,用文字、图表等表述算法原理,可以举例说明。切忌照抄课本)以太网发送的数据使用曼彻斯特编码的信号。 曼彻斯特编码的编码方法是把每—个码元再分成两个相等的间隔。 码元1是在前—个间隔为低电压而后一个间隔为高电压。码元0则正好相反,从高电压变到低电压。这样就保证了在每一个码元的正中间出现—次电压的转换,而接收端就利用这种电压的转换很方便地把位同步信号提取出来。 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。 举例: 比如遇到二进制编码为111000101100010时, 通过曼彻斯特编码算法, 最后转变为LHLHLHHLHLHLLHHLLHLHHLHLHLLHHL.

编码器使用与设置要点

从增量值编码器到绝对值编码器 旋转增量值编码器以转动时输出脉冲,通过计数设备来计算其位置,当编码器不动或停电时,依靠计数设备的内部记忆来记住位置。这样,当停电后,编码器不能有任何的移动,当来电工作时,编码器输出脉冲过程中,也不能有干扰而丢失脉冲,不然,计数设备计算并记忆的零点就会偏移,而且这种偏移的量是无从知道的,只有错误的生产结果出现后才能知道。 解决的方法是增加参考点,编码器每经过参考点,将参考位置修正进计数设备的记忆位置。在参考点以前,是不能保证位置的准确性的。为此,在工控中就有每次操作先找参考点,开机找零等方法。 这样的方法对有些工控项目比较麻烦,甚至不允许开机找零(开机后就要知道准确位置),于是就有了绝对编码器的出现。 绝对编码器光码盘上有许多道光通道刻线,每道刻线依次以2线、4线、8线、16线。。。。。。编排,这样,在编码器的每一个位置,通过读取每道刻线的通、暗,获得一组从2的零次方到2的n-1次方的唯一的2进制编码(格雷码),这就称为n位绝对编码器。这样的编码器是由光电码盘的机械位置决定的,它不受停电、干扰的影响。 绝对编码器由机械位置决定的每个位置是唯一的,它无需记忆,无需找参考点,而且不用一直计数,什么时候需要知道位置,什么时候就去读取它的位置。这样,编码器的抗干扰特性、数据的可靠性大大提高了。 从单圈绝对值编码器到多圈绝对值编码器 旋转单圈绝对值编码器,以转动中测量光电码盘各道刻线,以获取唯一的编码,当转动超过360度时,编码又回到原点,这样就不符合绝对编码唯一的原则,这样的编码只能用于旋转范围360度以内的测量,称为单圈绝对值编码器。 如果要测量旋转超过360度范围,就要用到多圈绝对值编码器。 编码器生产厂家运用钟表齿轮机械的原理,当中心码盘旋转时,通过齿轮传动另一组码盘(或多组齿轮,多组码盘),在单圈编码的基础上再增加圈数的编码,以扩大编码器的测量范围,这样的绝对编码器就称为多圈式绝对编码器,它同样是由机械位置确定编码,每个位置编码唯一不重复,而无需记忆。

曼彻斯特码原理与应用

曼彻斯特码 1 曼彻斯特原理介及其编码规则 (1) 2 曼彻斯特码的各方面应用 (3) 3 曼彻斯特码与差分曼彻斯特码 (5) 1 曼彻斯特原理介及其编码规则 Manchester编码是一种常用的基带信号编码。它具有内在的时钟信息,因而能使网络上的每一个系统保持同步。在Manchester编码中,时间被划分为等间隔的小段,其中每小段代表一位数据。每一小段时间本身又分为两半,前半个时间段所传信号是该时间段传送比特值的反码,后半个时间段传送的是比特值本身。可见在一个时间段内,其中间点总有一次信号电平的变化,因此携带有信号传送的同步信息而不需另外传送同步信号。 Manchester编码采用电平由高到低变化的下降沿代表0,电平由低到高变化的上升沿代表1;发送和接收的同步工作方式保证了信息传递的方便和可靠。 为了减少控制器与位置反馈单元之间的连线数目,信息的传递可采用两根线的串行方式。发送端和接收端的同步靠信息脉冲串之前的同步脉冲串来实现。 在电信领域,曼彻斯特码,(也称作相位码或者PE)是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的曼彻斯特编码被因此被认为是一种自定时码。自定时意味着数据流的精确同步是可行的。每一个 图1 二进制码和曼彻斯特码对比图 比特都准确的在一预先定义时间时期的时间中被传送。但是,今天有许许多多的复杂的编码方法(例如8B/10B编码),在达到同等目的情况下只需要更少带宽负荷并且只有更少的同步信号相位模糊。

二进制码与曼彻斯特码波形的对比关系如图1所示。 在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。 用于数字基带传输的码型种类较多,Manchester码是其中常用的一种。Manchester码是一种用跳变沿(而非电平)来表示要传输的二进制信息(0或1),一般规定在位元中间用下跳变表示“1”,用上跳变表示“0”. 曼彻斯特编码被被认为是一种自定时码自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一预先定义时间时期的时间中被传送。 在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 曼彻斯特编码提供了一种简单的方法在长时间段内没有电平跳变的情况下,仍然能够对任意的二进制序列进行编码,并且防止在这种情况下同步时钟信号的丢失以及防止低通模拟电路中低频直流飘移所引起的比特错误。如果保证传送的编码交流信号的直流分量为零并且能够防止中继信号的基线漂移,那么很容易实现信号的恢复和防止能量的浪费。曼彻斯特码具有丰富的位定时信息。 在物理层的同步时钟编码技术用来将时钟和数据编码统一在一个同步比特数据流中。在这项技术中,在电缆上被传送的真实二元数据不是以一连串的逻辑序列1或者0来表示的(这项技术也是一种不归零码NRZ)。这些要传送的数据比特被转换成一个略微不同格式,比起直接用二进制码(i.e. NRZ)来有许多的优势。 在曼彻斯特编码方案中,比特周期中间的0到1跳变表示逻辑0,比特周期中间的1到0的跳变表示逻辑1。注意信号跳变不一定在‘bitboundaries’比特边界(一个比特和另外一个比特)之间的分界线,但是总是发生在每个比特的中间位置.曼彻斯特编码的规则列出如下表1所示。

旋转编码器详解

增量式编码器的A.B.Z 编码器A、B、Z相及其关系

TTL编码器A相,B相信号,Z相信号,U相信号,V相信号,W相信号,分别有什么关系? 对于这个问题的回答我们从以下几个方面说明: 编码器只有A相、B相、Z相信号的概念。 所谓U相、V相、W相是指的电机的主电源的三相交流供电,与编码器没有任何关系。“A相、B相、Z相”与“U相、V相、W相”是完全没有什么关系的两种概念,前者是编码器的通道输出信号;后者是交流电机的三 相主回路供电。 而编码器的A相、B相、Z相信号中,A、B两个通道的信号一般是正交(即互差90°)脉冲信号;而Z相是零脉冲信号。详细来说,就是——一般编码器输出信号除A、B两相(A、B两通道的信号序列相位差为90度)外,每转一圈还输出一个零位脉冲Z。 当主轴以顺时针方向旋转时,输出脉冲A通道信号位于B通道之前;当主轴逆时针旋转时,A通道信号则位于B通道之后。从而由此判断主轴是正转还是反转。 另外,编码器每旋转一周发一个脉冲,称之为零位脉冲或标识脉冲(即Z相信号),零位脉冲用于决定零位置或标识位置。要准确测量零位脉冲,不论旋转方向,零位脉冲均被作为两个通道的高位组合输出。由于通道之间的相位差的存在,零位脉冲仅为脉冲长度的一半。 带U、V、W相的编码器,应该是伺服电机编码器 A、B相是两列脉冲,或正弦波、或方波,两者的相位相差90度,因此既可以测量转速,还可以测量电机的旋转方向Z相是参考脉冲,每转一圈输出一个脉冲,脉冲宽度往往只占1/4周期,其作用是编码器自我校正用的,使得编码器在断电或丢失脉冲的 时候也能正常使用。 ABZ是编码器的位置信号,UVW是电机的磁极信号,一般用于同步电机; AB对于TTL/HTL编码器来说,AB相根据编码器的细分度不同,每圈有很多个,但Z相每圈只有一个; UVW磁极信号之间相位差是120度,随着编码器的角度转动而转动,与ABZ 之间可以说没有直接关系。 /#############################################################

曼彻斯特码编解码的FPGA设计与实现

武汉理工大学 本科生毕业设计(论文)开题报告

目录 摘要 .......................................................................................................................................................... I ABSTRACT ............................................................................................................................................. II 1 绪论 (1) 1.1 背景及目的意义 (1) 1.2 国内外研究现状 (1) 1.2.1 在电信业的应用 (1) 1.2.2 在工业控制中的应用 (2) 1.2.3 在车辆总线中的应用 (2) 1.2.4 在石油勘测探井中的应用 (2) 1.3 项目研究内容及组织结构 (2) 2. 开发工具及仿真软件 (4) 2.1 FPGA原理 (4) 2.2 QuartusⅡ (5) 2.2.1 QuartusⅡ系统的特点 (5) 2.2.2 Quartus II下的FPGA设计 (6) 2.2.3 QuartusⅡ的仿真 (8) 2.3 Modelsim (8) 3 曼彻斯特码 (10) 3.1 数字通信中位同步与线路编码 (10) 3.2 曼彻斯特码及几种相关的二元码码型介绍 (11) 3.2.1 曼彻斯特码 (11) 3.2.2 单极性非归零波形 (12) 3.2.3 密勒码――曼彻斯特码的一种变形码 (12) 3.3 曼彻斯特码及几种常见二元码的包含定时信息的讨论 (12) 3.4曼彻斯特码的优点 (18) 3.5曼彻斯特码的应用范围 (19) 3.5.1在LAN中的应用 (19) 3.5.2在测井系统中的应用 (19) 3.6 曼彻斯特编码规则 (20) 4 系统方案设计 (23) 4.1 编码电路的设计 (23) 4.1.1 并串转换器的设计 (24) 4.1.2 NRZ码转换为曼彻斯特码 (25) 4.2 解码电路的设计 (26) 4.2.1 总体设计 (26) 4.2.2 各模块设计 (27) 5系统功能的实现 (30) 5.1 Verilog HDL语言简介 (30)

旋转编码器工作原理

增量式旋转编码器工作原理 增量式旋转编码器通过内部两个光敏接受管转化其角度码盘的时序和相位关系,得到其角度码盘角度位移量增加(正方向)或减少(负方向)。在接合数字电路特别是单片机后,增量式旋转编码器在角度测量和角速度测量较绝对式旋转编码器更具有廉价和简易的优势。 下面对增量式旋转编码器的内部工作原理(附图) A,B两点对应两个光敏接受管,A,B两点间距为 S2 ,角度码盘的光栅间距分别为S0和S1。 当角度码盘以某个速度匀速转动时,那么可知输出波形图中的S0:S1:S2比值与实际图的S0:S1:S2比值相同,同理角度码盘以其他的速度匀速转动时,输出波形图中的S0:S1:S2比值与实际图的S0:S1:S2比值仍相同。如果角度码盘做变速运动,把它看成为多个运动周期(在下面定义)的组合,那么每个运动周期中输出波形图中的S0:S1:S2比值与实际图的S0:S1:S2比值仍相同。 通过输出波形图可知每个运动周期的时序为 A B 1 1 0 1 0 0 1 0 A B 1 1 1 0 0 0 0 1 我们把当前的A,B输出值保存起来,与下一个A,B输出值做比较,就可以轻易的得出角度码盘的运动方向, 如果光栅格S0等于S1时,也就是S0和S1弧度夹角相同,且S2等于S0的1/2,那么可得到此次角度码盘运动位移角度为S0弧度夹角的1/2,除以所消毫的时间,就得到此次角度码盘运动位移角速度。

S0等于S1时,且S2等于S0的1/2时,1/4个运动周期就可以得到运动方向位和位移角度,如果S0不等于S1,S2不等于S0的1/2,那么要1个运动周期才可以得到运动方向位和位移角度了。 旋转编码器只有增量型和绝对值型两种吗?这两种旋转编码器如何区分?工作原理有何不同? 只有增量型和绝对型 增量型只是测角位移(间接为角速度)增量,以前一时刻为基点.而绝对型测从开始工作后角位移量. 增量型测小角度准,大角度有累积误差 绝对型测小角度相对不准,但大角度无累积误差 旋转编码器是用来测量转速的装置。它分为单路输出和双路输出两种。技术参数主要有每转脉冲数(几十个到几千个都有),和供电电压等。单路输出是指旋转编码器的输出是一组脉冲,而双路输出的旋转编码器输出两组相位差90度的脉冲,通过这两组脉冲不仅可以测量转速,还可以判断旋转的方向。 编码器的原理: 编码器的原理与应用 编码器是一种将角位移转换成一连串电数字脉冲的旋转式传感器,这些脉冲能用来控制角位移,如果编码器与齿条或螺旋杆结合在一起,也可于控制直线位移。 编码器中角位移的转换采用了光电扫描原理。读数系统是基于径向分度盘的旋转,该分度盘是由交替的透光窗口和不透光窗口构成的。此系统全部用一个红外光源垂直照射,这样光就把盘子和图像投射到接收器表面上,该接收器覆盖着一层光栅,称为准直仪,它具有和光盘相同的窗口。接收器的工作是感受光盘转动所产生的光变化,然后将光变化转换成相应的电变化。 增量型编码器 增量型编码器一般给出两种方波,它们的相位差90度,通常称为通道A和通道B。只有一个通道的读数给出与转速有关的信息,与此同时,通过所取得的第二通道信号与第一通道信号进行顺序对比的基础上,得到旋转方向的信号。还有一个可利用的信号称为Z通道或零通道,该通道给出编码器轴的绝对零位。此信号是一个方波,其相位与A通道在同一中心线上,宽度与A通道相同。 增量型编码器精度取决于机械和电气的因素,这些因素有:光栅分度误差、光盘偏心、轴承偏心、电子读数装置引入的误差以及光学部分的不精确性,误差存在于任何编码器中。 编码器如以信号原理来分,有增量型编码器,绝对型编码器。增量型编码器(旋转型) 工作原理: 由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向 ,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。 由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。 编码器码盘的材料有玻璃、金属、塑料,玻璃码盘是在玻璃上沉积很薄的刻线,其热稳定性好,精度高,金属码盘直接以通和不通刻线,不易碎,但由于金属有一定的厚度,精度就有限制,其热稳定性就要比玻璃的差一个数量级,塑料码盘是经济型的,其成本低,但精度、热稳定性、寿命均要差一些。

旋转编码器的原理及应用

旋转编码器的原理及应用 旋转编码器是用来测量转速的装置。它分为单路输出和双路输出两种。技术参数主要有每转脉冲数(几十个到几千个都有),和供电电压等。单路输出是指旋转编码器的输出是一组脉冲,而双路输出的旋转编码器输出两组相位差90度的脉冲,通过这两组脉冲不仅可以测量转速,还可以判断旋转的方向。 什么是光电编码器? 工作原理:当光电编码器的轴转动时A、B两根线都产生脉冲输出,A、B两相脉冲相差90度相位角,由此可测出光电编码器转动方向与电机转速。如果A相脉冲比B相脉冲超前则光电编码器为正转,否则为反转.Z 线为零脉冲线,光电编码器每转一圈产生一个脉冲.主要用作计数。A线用来测量脉冲个数,B线与A线配合可测量出转动方向. N为电机转速Δn=ND测-ND理 例如:我们车的速度为1.5m/s,轮子的直径220mm,C=D*Pi,电机控制在21.7转/秒,根据伺服系统的指标, 设电机转速为1500转/分,故可求得当ND=21.7*60=130转/分时,光码盘每秒钟输出的脉冲数为: PD=130×600/60=1300个脉冲 当测出的脉冲个数与计算出的标准值有偏差时,可根据电压与脉冲 个数的对应关系计算出输出给伺服系统的增量电压△U,经过D/A转换,再计算出增量脉冲个数,等下减去。 当运行时间越长路线越长,离我们预制的路线偏离就多了。这时系统起动位置环,通过不断测量光电编码器每秒钟输出的脉冲个数,并与标准值PD(理想值)进行比较,计算出增量△P并将之转换成对应的D/A 输出数字量,通过控制器减少输个电机的脉冲个数,在原来输出电压的基础上减去增量,迫使电机转速降下来,当测出的△P近似为零时停止调节,这样可将电机转速始终控制在允许的范围内。

一种简便的ID卡曼彻斯特解码方法

一种简便的ID卡曼彻斯特解码方法 我这里介绍的是常用的125KHz的ID卡。ID卡内固化了64位数据,由5个区组成:9个引导位、10个行偶校验位“PO~P9′’、4个列偶校验位“PC0~PC3”、40个数据位“D00~D93”和1个停止位S0。9个引导位是出厂时就已掩膜在芯片内的,其值为“111111111”,当它输出数据时,首先输出9个引导位,然后是10组由4个数据位和1个行偶校验位组成的数据串,其次是4个列偶校验位,最后是停止位“0”。“D00~D13”是一个8位的晶体版本号或ID识别码。“D20~D93”是8组32位的芯片信息,即卡号。注意校验位都是偶校验,网上有些资料写的是奇校验,很明显是错的,如果是奇校验的话,在一个字节是FF 的情况下,很容易就出现9个1,这样引导位就不是唯一的了,也就无法判断64位数据的起始位了。 数据结构如下图:

我读的一个ID卡数据是111111111 10001 00101 00000 00011 00000 01010 00000 11011 00110 01100 01100,对应的ID卡号是01050d36。 ID卡数据采用曼彻斯特编码,1对应着电平下跳,0对应着电平上跳。每一位数据的时间宽度都是一样的(1T)。由于电路参数的差别,时间宽度要实际测量。解码芯片采用U2270B,单片机采用89S52。U2270B的输出脚把解码得到的曼彻斯特码输出到89S52的INT脚。在89S52的外部中断程序中完成解码。 在没有ID卡在读卡器射频范围内时,U2270B的输出脚会有杂波输出,ID卡进入读卡器射频范围内后,会循环发送64位数据,直到ID卡离开读卡器的有效工作区域。 根据ID卡的数据结构,64位数据的最后一位停止位是0。最开始的9位引导位是1,可以把0111111111做为引导码。也就是说在ID卡进入读卡器工作范围后,丢掉ID卡发送的第一个64位码,检测最后1位0,然后检测ID卡发送的第2个64位码的9个引导码111111111,引导码检测成功后,解码剩余的55位码。得到ID卡的数据。然后丢掉ID卡发送的第3个64位码,检测第3个64位码的最后1位0,再检测ID卡发送的第4个64位码。这样连续3次检测到同一个码,就认为解码到了正确的ID卡号。 之所以要丢掉ID卡发送的第一个64位数据,是因为U2270B在没有ID卡刷卡时,也会输出波形到89S52的INT脚,这样将无法判断ID卡数据的头码。从第2个码开始解码能确保检测的头码正确。丢掉第3个码的原因是在检测第2个码时,最后一位停止位也被解码,那么就不能采用 0111111111来检测第3个码了,只能检测第3个码的最后1位0,再解码第4个码。 下面详细介绍解码原理,程序中要用到的变量定义如下: Bit_over:为0,表示1位数据处理完,为1,表示当前处于数据位的跳变处。Head_start:检测到头码0时,把head_start置1,然后连续检测到8次下降沿时间间隔大于0.75T,小于1.25T,并且 head_start为1,置位头码标志head_flag。Head_start的作用就是保证是连续检测到0111111111。 Head_flag:头码标志,检测到0111111111后置1。 Prev_bit:保存当前数据位的值,下一位数据的值要根据当前位的值来判断。Pulse_width:16 位数据,保存INT脚两次下降沿之间的时间间隔。 Bit_cnt:检测完头码后,每次检测5位数据,也就是一行。 Row:行数,不包括头码,总共11行,用来判断64位数据是否接收完。 Buff[11]:缓冲区,用来保存接收的11行数据。每个数据只有低5位有效。 Id_data[11]:保存缓冲区的11个数据,进行校验,得到ID卡号。

曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析

曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析 曼彻斯特解码原则 1.曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。 曼彻斯特编码,常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是0 从低到高的跳变是1。 两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。 就是说主要用在数据同步传输的一种编码方式。 【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。】 2. 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE);常用于局域网传输。在曼

案例五旋转编码器的安装与应用

案例五旋转编码器的安装与应用 1.项目训练目的 掌握旋转编码器的安装与使用方法。 2.项目训练设备 旋转编码器及相应耦合器一套。 3.项目训练内容 先熟悉旋转编码器的使用说明书。 (1)旋转编码的安装步骤及注意事项 ①安装步骤: 第一步:把耦合器穿到轴上。不要用螺钉固定耦合器和轴。 第二步:固定旋转编码器。编码器的轴与耦合器连接时,插入量不能超过下列值。 E69-C04B型耦合器,插入量 5.2mm;E69-C06B型耦合器,插人量 5.5mm;E69-Cl0B型耦合器,插入量7.lmm。 第三步:固定耦合器。紧固力矩不能超过下列值。E69-C04B型耦合器,紧固力矩2.0kfg?cm;E69-C06B型耦合器,紧固力矩 2.5kgf?cm;E69B-Cl0B型耦合器,紧固力矩4.5kfg?cm。 第四步:连接电源输出线。配线时必须关断电源。 第五步:检查电源投入使用。 ②注意事项: 采用标准耦合器时,应在允许值内安装。如图5-1所示。 图5-1 标准耦合器安装 连接带及齿轮结合时,先用别的轴承支住,再将旋转编码器和耦合器结合起来。如图 5-2所示。 图5-2 旋转编码器安装 齿轮连接时,注意勿使轴受到过大荷重。 用螺钉紧固旋转编码器时,应用5kfg?cm左右的紧固力矩。 固定本体进行配线时,不要用大于3kg的力量拉线。 可逆旋转使用时,应注意本体的安装方向和加减法方向。 把设置的装置原点和编码器的Z相对准时,必须边确定Z相输出边安装耦合器。 使用时勿使本体上粘水滴和油污。如浸入内部会产生故障。 (2)配线及连接

①配线应在电源0FF状态下进行。电源接通时,若输出线接触电源线,则有时会损坏输出回路。 ②若配线错误,则有时会损坏内部回路,所以配线时应充分注意电源的极性等。 ③若和高压线、动力线并行配线,则有时会受到感应造成误动作或损坏。 ④延长电线时,应在10m以下。还由于电线的分布容量,波形的上升、下降时间会延长,所以有问题时,应采用施密特回路等对波形进行整形。 还有为了避免感应噪声等,也要尽量用最短距离配线。集成电路输人时,要特别注意。 ⑤电线延长时,因导体电阻及线间电容的影响。波形的上升、下降时间变长,容易产 生信号间的干扰(串音),因此应使用电阻小、线间电容低的电线(双绞线、屏蔽线)。

旋转编码器在S7-200的应用

运行工作方式,机器大概情况, 机器共18个工位,每个工位为一个机器过程,一个工件为5米(误差1CM)要求用2000线的轴式旋转编码器通过PLC协调控制完成每个工件。 每个工位都有一个人,1个绿启动按钮。一个绿灯,1个红色急停按钮,1个红灯。当1号工人按1号启动按钮后1号指示灯亮,2号工人按2号启动按钮后2号指示灯亮,直到第18个工人都按启动按钮后18灯全亮,机器开始运转,自动运转到5米后停止。绿灯全灭(记米自动复位)等待18个工人下一次继续给18个运行信号后运行。(红色按钮为紧急停车按钮:当工件工作到一半时紧急停车,手动不复位情况下,8个工人动启动后机器可继续当前的米数运转。手动复位则重新开始) 当18个工人无论哪个工人按红色按钮时机器立即停机(此时红色指示灯全亮,红色按钮释放后指示灯全灭)机器再次启动需18个工人都给启动信号才能运行。18个红色按钮共用PLC一个点。如果点富裕的话18个红按钮分为3组,一组6个共用一个点,用3个点实现这个功能。变频器运行过程,当给变频器运行信号时变频器缓慢启动逐渐加速到高速,指定记米到达时变频器缓慢减速到低速运行,记米到达后变频器立即停止刹车,18个工位如果少几个工位的把那几个工位短接,要不影响工作。

程序分为3部分,主程序,指示灯输出,初始化。初始化中有两个中断程序,分别为当前值=设定值时中断以及复位时产生的中断。高速计数器HDEF的通道是HSC0,意思为编码器的A、B相接I0.0、I0.1,复位接在I0.2。事件号是10,意思是选择A/B正交计数器。中断ATCH的事件号12代表当前值=设定值时中断。事件号28代表HSC0当I0.2高电平时产生中断。 主程序:

旋转编码器定位使用说明

充注小车、运载小车定位使用说明 定位原理: 旋转编码器定位与老式的旋转变压器一样,实际上是一个计数器。我们目前使用的OMRON旋转编码器每旋转一周,能精确地发出1024脉冲,PLC依据旋转编码器发出的脉冲进行计数,再乖以固定机械变比与旋转半径的系数,就可以得出脉冲与实际行走距离的线性对应关系。 PLC利用高速计数模块QD62D读取旋转编码器的值并进行数字化处理,可以将脉冲数值转换成实际的距离值如mm。 目前我们设备都是利用旋转编码器的原始值进行处理的,所有触模屏上的距离值均为脉冲值而非实际距离值,这样在处理数据时比较方便直观。 根据这一对应关系利用普通变频器控制一般的三相鼠笼电机就能实现精度在1毫米左右定位系统,可以在许多定位要求不高的控制领域使用。 使用方法: 依据上述原理,定位系统定位首先必须选择一个参考点,以这点作为基准点,其它所有设置点均为到这一点的相对距离。当基点信号取的不稳定或不好,就会影响整个定位过程。 旋转编码器由一个联轴器与一套齿轮机构组合成一套测量机构。由于齿轮与齿轮之间存在间隙,运行一段时间后就会有误差积累,造成定位不准,这时不要改变屏上设定数据,而是在运行机构运行一段时间后,让运行机构回到基点,进行一次清零,就可以消除积累误差。 旋转编码器定位机构的故障主要有定位不准、或运行数据无变化等等。 定位不准主要是由测量机构之间的间隙,联轴器、齿轮相对打滑。 一种定位不准就是干扰,现场已采用了一端接地的屏蔽等措施。出错时请严格检查测量线路(包抱QD62D联接器)有无断线、短路、屏蔽不严、模块供电电压不足等问题。 还有一种定位不准表现在:由于测量机构所能测量的最大频率不超过500KHz,因此对于变化速度太快脉冲系统不能及时测量,造成定位不准。因此系统要运行平稳,不能有速度突变。

伺服电机旋转编码器旋变安装

伺服电机旋转编码器安装 一.伺服电机转子反馈的检测相位与转子磁极相位的对齐方式 1.永磁交流伺服电机的编码器相位为何要与转子磁极相位对齐 其唯一目的就是要达成矢量控制的目标,使d轴励磁分量和q轴出力分量解耦,令永磁交流伺服电机定子绕组产生的电磁场始终正交于转子永磁场,从而获得最佳的出力效果,即“类直流特性”,这种控制方法也被称为磁场定向控制(FOC),达成FOC控制目标的外在表现就是永磁交流伺服电机的“相电流”波形始终与“相反电势”波形保持一致,如下图所示: 图1 因此反推可知,只要想办法令永磁交流伺服电机的“相电流”波形始终与“相反电势”波形保持一致,就可以达成FOC控制目标,使永磁交流伺服电机的初级电磁场与磁极永磁场正交,即波形间互差90度电角度,如下图所示: 图2 如何想办法使永磁交流伺服电机的“相电流”波形始终与“相反电势”波形保持一致呢?由图1可知,只要能够随时检测到正弦型反电势波形的电角度相位,然后就可以相对容易地根据电角度相位生成与反电势波形一致的正弦型相电流波形了。 在此需要明示的是,永磁交流伺服电机的所谓电角度就是a相(U相)相反电势波形的正弦(Sin)相位,因此相位对齐就可以转化为编码器相位与反电势波形相位的对齐关系;另一方面,电角度也是转子坐标系的d轴(直轴)与定子坐标系的a轴(U轴)或α轴之间的夹角,这一点有助于图形化分析。 在实际操作中,欧美厂商习惯于采用给电机的绕组通以小于额定电流的直流电流使电机转子定向的方法来对齐编码器和转子磁极的相位。当电机的绕组通入小于额定电流的直流电流时,在无外力条件下,初级电磁场与磁极永磁场相互作用,会相互吸引并定位至互差0度相位的平衡位置上,如下图所示:

旋转编码器应用注意事项

旋转编码器应用注意事项 有网友问:增量旋转编码器选型有哪些注意事项? 应注意三方面的参数: 1.械安装尺寸,包括定位止口,轴径,安装孔位;电缆出线方式;安装空间体积; 工作环境防护等级是否满足要求。 2.分辨率,即编码器工作时每圈输出的脉冲数,是否满足设计使用精度要求。 3.电气接口,编码器输出方式常见有推拉输出(F型HTL格式),电压输出(E), 集电极开路(C,常见C为NPN型管输出,C2为PNP型管输出),长线驱动器输出。其输出方式应和其控制系统的接口电路相匹配。 ■二.※有网友问:请教如何使用增量编码器? 1,增量型旋转编码器有分辨率的差异,使用每圈产生的脉冲数来计量,数目从 6到5400或更高,脉冲数越多,分辨率越高;这是选型的重要依据之一。 2,增量型编码器通常有三路信号输出(差分有六路信号):A,B和Z,一般采用 TTL电平,A脉冲在前,B脉冲在后,A,B脉冲相差90度,每圈发出一个Z脉冲,可作为参考机械零位。一般利用A超前B或B超前A进行判向,我公司增量型编码器定义为轴端看编码器顺时针旋转为正转,A超前B为90°,反之逆时针旋转为反转B超前A为90 °。也有不相同的,要看产品说明。 3,使用PLC采集数据,可选用高速计数模块;使用工控机采集数据,可选用高 速计数板卡;使用单片机采集数据,建议选用带光电耦合器的输入端口。 4,建议B脉冲做顺向(前向)脉冲,A脉冲做逆向(后向)脉冲,Z原点零位脉冲。 5,在电子装置中设立计数栈。 ■三.※关于户外使用或恶劣环境下使用 有网友来email问,他的设备在野外使用,现场环境脏,而且怕撞坏编码器。 我公司有铝合金(特殊要求可做不锈钢材质)密封保护外壳,双重轴承重载型 编码器,放在户外不怕脏,钢厂、重型设备里都可以用。 不过如果编码器安装部分有空间,我还是建议在编码器外部再加装一防护壳,以加 强对其进行保护,必竟编码器属精密元件,一台编码器和一个防护壳的价值比较还 是有一定差距的。 ■四.※从接近开关、光电开关到旋转编码器: 工业控制中的定位,接近开关、光电开关的应用已经相当成熟了,而且很好用 。可是,随着工控的不断发展,又有了新的要求,这样,选用旋转编码器的应用优 点就突出了: 信息化:除了定位,控制室还可知道其具体位置; 柔性化:定位可以在控制室柔性调整; 现场安装的方便和安全、长寿:拳头大小的一个旋转编码器,可以测量从几个 μ到几十、几百米的距离,n个工位,只要解决一个旋转编码器的安全安装问题,可 以避免诸多接近开关、光电开关在现场机械安装麻烦,容易被撞坏和遭高温、水气 困扰等问题。由于是光电码盘,无机械损耗,只要安装位置准确,其使用寿命往往 很长。 多功能化:除了定位,还可以远传当前位置,换算运动速度,对于变频器,步 进电机等的应用尤为重要。 经济化:对于多个控制工位,只需一个旋转编码器的成本,以及更主要的安装 、维护、损耗成本降低,使用寿命增长,其经济化逐渐突显出来。

曼彻斯特编解码器

工具软件实训报告 项目名称:曼彻斯特编解码器指导老师: 系科: 专业: 姓名: 学号:

目录: 一:实训要求 (3) 二:实训原理 (3) 三:实训思路 (4) 四:实训步骤 (4) 五:原理图、仿真结果图以及结论分析 (5) 1.曼彻斯特编解码器(实现16bit数据的编解码) (5) 1.1曼彻斯特编解码器电路原理图: (5) 1.2模块详解 (6) 1.3仿真图以及分析 (10) 六:个人总结 (11)

一:实训要求 (1)通过学习原理图输入设计的方法掌握使用工具软件Quartus Ⅱ设计小型数字电路; (2)查阅文献,了解曼彻斯特编解码器的基本原理,并提出在Quartus Ⅱ软件环境下用VHDL进行仿真的方案。 (3)完成设计对编码器的要求:能够对输入的16bit数据进行曼彻斯特编码,输入有时钟、使能、16bit并行数据、写信号等;输出有编码结束和曼彻斯特编码信号(都为1位信号)等。 (4)完成设计对解码器要求:能够把输入的串行曼彻斯特码解码成原先的并行数据,输入有时钟、曼彻斯特码输入(1bit)、使能信号等,输出有提取的同步时钟信号、解码完成(1bit),并行数据(16bit)等。 二:实训原理 曼彻斯特编码,也叫做相位编码(PE),是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流的时钟和数据。它的每一个数据比特都是由至少一次电压转换的形式所表示的。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作为时钟信号,又作为数据信号。按照曼彻斯特码在IEEE 802.4(令牌总线)以及IEEE 802.3 (以太网)中的规定,本次实训将从高电平到低电平的

欧姆龙PLC与旋转编码器的应用

旋转编码器的应用 例:E6C-N绝对型多旋转高精度型旋转编码器与CPM1A PLC连接进行定位控制 一、连接示意图 型号E6C-NN5C 型号CPM1A-40CD□-□ 二、配线表 【型号E6C-NN5C和型号CPM1A的配线】 型号E6C-NN5C输出信号型号CPM1A 输入信号 单旋转导线外皮褐(20) 00000 数据颜色橙(21) 00001 (灰)黄(22) 00002 绿(23) 00003 蓝(24) 00004 紫(25) 00005 灰(26) 00006 白(27) 00007 粉红(28) 00008 多旋转导线外皮茶(20) 00100 数据颜色橙(21) 00101 (黑)黄(22) 00102 绿(23) 00103 蓝(24) 00104 紫(25) 00105 符号+=0 灰(26) 00106 -=1 白(27) 00107 三、输出时间 【输出时间】 型号E6C-NN5C的绝对值数据 1旋转 2旋转 127旋转 63999

四、梯形图程序 000通道的0 接点,输送到 (单旋转数 BIN) BIN BCD 001通道的 0~7接点,输送 到DM0003(多旋转 数据BIN) BIN 转换到BCD BCD)× 500(单旋转分辨率) 的结果存入 DM0005~6 比较带在DM0010/11的值与DM0012/13 的值间在线性绝对值数据时,输出01000 接点。(限正旋转时进行带域比较)

五、DM设定 【DM设定】 DM0000 0001 0002 0000 数据程序用工作区域 0003 0004 0005 0006 0007 线性绝对值数据 0008 0009 比较数据 0010 9000 0011 0000 上限值设定 0012 0500 0013 0001 下限值设定 注:上述梯形程序为参考例,有时会因程序控制器的数据读入时间而产生数据读取错误。这时,比较上次读入的数据与当前读入的数据。若超过100以上,则该数据作废。(多旋转数据变化时,同时读入单旋转数据与多旋转数据,则错误的数据也被读入。

曼彻斯特编解码器

工具软件实训报告 项目名称: 曼彻斯特编解码器 指导老师: 系科: 专业: 姓名: 学号: 目录: 一:实训要求 (2) 二:实训原理 (2) 三:实训思路 (3) 四:实训步骤 (3) 五:原理图、仿真结果图以及结论分析 (4) 1、曼彻斯特编解码器(实现16bit数据得编解码) (4) 1、1曼彻斯特编解码器电路原理图: (4) 1、2模块详解 (4) 1、3仿真图以及分析...................... 错误!未定义书签。六:个人总结、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、11

(1)通过学习原理图输入设计得方法掌握使用工具软件Quartus Ⅱ设计小型数字电路; (2)查阅文献,了解曼彻斯特编解码器得基本原理, 并提出在Quartus Ⅱ软件环境下用VHDL进行仿真得方案。 (3)完成设计对编码器得要求:能够对输入得16bit数据进行曼彻斯特编码,输入有时钟、使能、16bit并行数据、写信号等;输出有编码结束与曼彻斯特编码信号(都为1位信号)等。 (4)完成设计对解码器要求:能够把输入得串行曼彻斯特码解码成原先得并行数据,输入有时钟、曼彻斯特码输入(1bit)、使能信号等,输出有提取得同步时钟信号、解码完成(1bit),并行数据(16bit)等。 二:实训原理 曼彻斯特编码,也叫做相位编码(PE),就是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流得时钟与数据。它得每一个数据比特都就是由至少一次电压转换得形式所表示得。在曼彻斯特编码中,每一位得中间有一跳变,位中间得跳变既作为时钟信号,又作为数据信号。按照曼彻斯特码在IEEE 802、4(令牌总线)以及IEEE 802、3 (以太网)中得规定,本次实训将从高电平到低电平得跳变表示“0”,从低电平到高电平得跳变表示“1”。

相关文档