- 浏览: 562832 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
binglex:
谢谢,出现这个异常,看来这个贴才发现site-packages ...
cx_Oracle的"Unable to acquire Oracle environment handle"异常 -
lizhongkan:
这样过度比较方便。但如果原来的项目,有几十个依赖的jar包,是 ...
maven2的pom的依赖管理 -
landmine:
博文看不清呀楼主,怎么解决的?我也遇到了
applet在IE下运行极慢而且CPU占用很高 -
strivefuture:
这种方法对FF浏览器,有效吗?
Iframe Shim解决applet挡住ExtJS工具栏菜单问题 -
zw:
老大也有粗心的时候啊!
一个属性未设置导致发mail不成功的郁闷。
在比较漫长的期待之后(期间经历了Grails被SpringSource收购和Groovy1.6助速的利好消息),Grails 1.1终于跟我们广大的Grailers见面了,正如Grails的Roadmap所描述,此次的发布新增不少的人性化的特性,闲话少说,让我们一起来对Grails 1.1的新特性,先睹为快,以下只是主要内容的摘录和简译,详细请参考原文:http://www.grails.org/1.1+Release+Notes。
GORM--期待已久了:)
独立的GORM
GORM现在不再依赖Grails 1.1了,只需要带有命名空间的Spring配置来设置必要的Hibernate SessionFactory就好了:
上述示例将扫描"org.grails.samples"包,只要每个GORM实体被grails.persistence.Entity注释(annotation)就可以了:
更多信息参考在GRAILS_HOME/samples/petclinic-mvcSpring MVC petclinic示例。
更好的GORM事件支持
在以前的版本中,GORM已经支持beforeInsert, beforeUpdate和beforeDelete事件了,现在相对应的afterInsert, afterUpdate and afterDelete也完全支持了。
持久化原生类型集合(Persistence of Collections of Basic Types)
现在,GORM通过关联表(join table)的方式支持原生类型集合的持久化,象String, Integer等集合:
持久化枚举类型集合
GORM提供对枚举类型集合的持久化:
只读的对象实例
通过read方法,领域对象实例可以以只读的方式加载:
缺省的排序
关联关系(Associations)可以在类级别中声明一个缺省的排序:
或者在关联级别(association level):
批量读取(Batch Fetching)
GORM支持在类级别中使用ORM DSL来配置批量读取(优化的延迟加载):
或者在关联级别(association level):
更好的动态查找器(Dynamic Finders)
现有的动态查找器中新增了InList后缀:
动态查找器还可以使用查询缓存:
并且还支持悲观锁(pessimistic lock):
支持遗留系统的单向一对多映射
单向的One-to-many关联可以通过joinTable参数来更改映射到基础数据库的方式:
枚举类型现在可以通过特定的getId()方法来确定要持久化的状态信息。这是除了枚举名称或者顺序值(Enum name or the ordinal value)之外的另外一种持久化的机制。
插件(Plugins)--确实比以前便利了很多
全局插件
可以插件插件为所有应用所全局共享:
多个插件仓库
现在,Grails支持配置多个插件存储仓库的能力,你只需要在USER_HOME/.grails/settings.groovy或者grails-app/conf/BuildConfig.groovy文件中包含要配置的仓库信息就可以了:
Grails发现插件的命令(plugin discovery commands)比如list-plugin和install-plugin将会自动的根据所配置的仓库去工作,要发布一个插件到特定的仓库,你可以用repository参数来指定特定的仓库:
自动的解决插件依赖传递(Automatic Transitive Plugin Resolution)
插件将不再需要检测SVN,在应用第一次加载的时候,会根据插件的元数据自动的被安装。
此外插件的依赖也将会通过类似传递来解决
插件的范围和环境(Plugin Scopes and Environments)
Plugins可以通过指定环境(environment)或者预定义的构建来标识范围:
插件就会只加载那些environments中定义的,并将不会被打包到WAR文件中,这样开发类插件("development-only" plugins)就不会被打包到产品中.使用而不再产品中.
插件资源的排除(Plugin Excludes)
你可以在插件中描述那些要排除的某些资源:
这将在最后打包插件的时候,排除那些test/demo的资源很有用.
使用插件进行模块化应用开发(Modular Application Development with Plugins)
一个应用可以从任何地方进行加载,甚至都没有安装都可以,要达到如此,你只需要在你的BuildConfig.groovy 文件中指定位置即可:
这样做在以下两处地方有好处:
1. 你正在开发一个插件,但是想在真正的应用中测试,却又不想先打包再安装.
2. 你将一个应用拆分成一系列插件和一个应用,而且这些都在同样的"super-project" 目录中
测试
测试框架
新的测试框架已经被集成到Grails 1.1了
测试框架增加了模仿所有通用类型比如controllers, domain class, tag libraries and url mappings,这样就可以更少更快的运行单元测试.
数据绑定(Data Binding)--更灵活了
绑定属性的一个子集
更简单的绑定属性子集,以前的语法是:
这将请求参数中所有数据绑定到person中。如果你不期望这样的行为,你可以使用bindData,而现在你要帮定属性的子集,只需要使用下标操作符(subscript operator)就可以了:
要访问领域类属性的子集也是同样的语法:
集合类型的帮定
Grails支持象lists, sets和maps集合类型的绑定.
Grails会根据指定的索引自动的初始化领域对象实例并且赋予相应的关联对象的值
脚手架(Scaffolding)
模板和动态脚手架
通过install-templates命令,可以安装模板,动态脚手架现在使用此模板来运行
支持更多的关联类型
脚手架支持多对多和单向的一对多关联关系
控制器(Controllers)--新特性还不错
更好的RESTful映射
你可以使用如下的REST URLs:
上述示例中URI "/books"将会自动的映射到BookController. 而HTTP的GET, PUT, POST 和DELETE 将会相应地被"show", "save", "update" and "delete"所处理.
处理重复的提交
通过同步令牌模式("Synchronizer Token Pattern"),Grails内建了对重复提交的处理。不过首先你要在form中声明一个令牌:
然后通过withForm方法你可以检测出是重复的还是无效的请求:
转发请求(Forwarding Requests)
作为重定向的一个替代,你可以通过forward方法来转发你的一个请求:
声明式的错误处理
你可以在你的UrlMappings文件中声明一个特定类型的异常处理:
视图(Groovy Server Pages)--兼容性更好
在GSP中支持JSP的标签
GSP支持重用JSP的能力:
在GSP中也支持方法式的JSP标签调用 :
模板的命名空间(Template Namespace)
对于模板的使用来说,增加了一个特定的命名空间,因此一个如下所示的_tableRow.gsp模板:
可以通过使用tmpl命名来调用:
服务器端的包含
新增了一个<g:include>标签在当前的视图中来引入另外一个controller, action 或者 view的响应:
此标签也可以在 controller 或者 另外的tag library中使用:
工程基础架构(Project Infrastructure)--更多更好的构建集成
maven集成
Grails 1.1 comes with an associated Maven plugin and archetype that allows you to build your Grails project easily using Maven. Follow the instructions here and either use the archetype to create a new Grails project, or run:
to create a Maven POM for an existing project.
Ant + Ivy 集成
Grails now creates an Ant build.xml and corresponding ivy.xml file for each project allowing you to build a Grails project on any build server that supports Ant (like CruiseControl and Hudson) without needing Grails installed on the target server.
在BeanBuilder中支持Spring的命名空间
Grails' Spring DSL has been extended to include access to the Spring namespace APIs allowing you to easily use Spring advanced AOP support (among other things):
Environment and Metadata API
There is a new API to access the current Environment:
There is also a new class for easily accessing application meta-data:
Log4j DSL
A new Log4j DSL is available that replaces the old way of configuring Log4j:
Full documentation for the Log4j DSL is available in the user guide.
Flexible Build Configuration
A new grails-app/conf/BuildConfig.groovy file is available that allows you to configure different aspects of the Grails build including output paths and servers used for resolution of plugins:
Non-interactive mode
Grails now supports a --non-interactive flag at the command line that can be passed in order to disable any user prompts:
This is useful for continuous integration servers.
Encrypted Data Sources
DataSource passwords can now be encrypted using a supplied codec class:
The supplied codec uses Grails' existing codec mechanism
升级注意事项--有必要专门写个blog总结一下
Grails 1.1 是发生很多重要的变化,但是大部分还是向后兼容的。以下是已知的一些会影响升级的东东:
不抱怨,不折腾。经历越多,收获越多。
GORM--期待已久了:)
独立的GORM
GORM现在不再依赖Grails 1.1了,只需要带有命名空间的Spring配置来设置必要的Hibernate SessionFactory就好了:
<gorm:sessionFactory base-package="org.grails.samples" data-source-ref="dataSource" message-source-ref="messageSource"> <property name="hibernateProperties"> <util:map> <entry key="hibernate.hbm2ddl.auto" value="update"/> </util:map> </property> </gorm:sessionFactory>
上述示例将扫描"org.grails.samples"包,只要每个GORM实体被grails.persistence.Entity注释(annotation)就可以了:
@Entity class Book { String title }
更多信息参考在GRAILS_HOME/samples/petclinic-mvcSpring MVC petclinic示例。
更好的GORM事件支持
在以前的版本中,GORM已经支持beforeInsert, beforeUpdate和beforeDelete事件了,现在相对应的afterInsert, afterUpdate and afterDelete也完全支持了。
持久化原生类型集合(Persistence of Collections of Basic Types)
现在,GORM通过关联表(join table)的方式支持原生类型集合的持久化,象String, Integer等集合:
class Person { static hasMany = [nicknames:String] }
持久化枚举类型集合
GORM提供对枚举类型集合的持久化:
enum VehicleStatus { OFF, IDLING, ACCELERATING, DECELARATING } class Truck { static hasMany = [statuses:VehicleStatus] }
只读的对象实例
通过read方法,领域对象实例可以以只读的方式加载:
def book = Book.read(1)
缺省的排序
关联关系(Associations)可以在类级别中声明一个缺省的排序:
class Book { String title static mapping = { sort "title" } }
或者在关联级别(association level):
class Author { static hasMany = [books:Book] static mapping = { books sort:"title" } }
批量读取(Batch Fetching)
GORM支持在类级别中使用ORM DSL来配置批量读取(优化的延迟加载):
class Book { String title static mapping = { batchSize 15 } }
或者在关联级别(association level):
class Author { static hasMany = [books:Book] static mapping = { books batchSize:15 } }
更好的动态查找器(Dynamic Finders)
现有的动态查找器中新增了InList后缀:
def groovyBooks = Book.findByAuthorInList(['Dierk Koenig', 'Graeme Rocher'])
动态查找器还可以使用查询缓存:
def books = Book.findByTitle("Groovy in Action", [cache:true] )
并且还支持悲观锁(pessimistic lock):
def books = Book.findByTitle("Groovy in Action", [lock:true] )
支持遗留系统的单向一对多映射
单向的One-to-many关联可以通过joinTable参数来更改映射到基础数据库的方式:
class Book { String title static belongsTo = Author static hasMany = [authors:Author] static mapping = { authors joinTable:[name:"mm_author_books", key:'mm_book_id' ] } } class Author { String name static hasMany = [books:Book] static mapping = { books joinTable:[name:"mm_author_books", key:'mm_author_id'] } }更好的枚举类型支持
枚举类型现在可以通过特定的getId()方法来确定要持久化的状态信息。这是除了枚举名称或者顺序值(Enum name or the ordinal value)之外的另外一种持久化的机制。
enum Country { AUSTRIA('at'), UNITED_STATES('us'), GERMANY('de'); final String id Country(String id) { this.id = id } }
插件(Plugins)--确实比以前便利了很多
全局插件
可以插件插件为所有应用所全局共享:
grails install-plugin webtest -global
多个插件仓库
现在,Grails支持配置多个插件存储仓库的能力,你只需要在USER_HOME/.grails/settings.groovy或者grails-app/conf/BuildConfig.groovy文件中包含要配置的仓库信息就可以了:
grails.plugin.repos.discovery.myRepository="http://svn.codehaus.org/grails/trunk/grails-test-plugin-repo" grails.plugin.repos.distribution.myRepository="https://svn.codehaus.org/grails/trunk/grails-test-plugin-repo"
Grails发现插件的命令(plugin discovery commands)比如list-plugin和install-plugin将会自动的根据所配置的仓库去工作,要发布一个插件到特定的仓库,你可以用repository参数来指定特定的仓库:
grails release-plugin -repository=myRepository
自动的解决插件依赖传递(Automatic Transitive Plugin Resolution)
插件将不再需要检测SVN,在应用第一次加载的时候,会根据插件的元数据自动的被安装。
此外插件的依赖也将会通过类似传递来解决
插件的范围和环境(Plugin Scopes and Environments)
Plugins可以通过指定环境(environment)或者预定义的构建来标识范围:
def environments = ['dev', 'test'] def scopes = [excludes:'war']
插件就会只加载那些environments中定义的,并将不会被打包到WAR文件中,这样开发类插件("development-only" plugins)就不会被打包到产品中.使用而不再产品中.
插件资源的排除(Plugin Excludes)
你可以在插件中描述那些要排除的某些资源:
def pluginExcludes = [ 'grails-app/controller/DemoController.groovy', 'grails-app/domain/DemoDomain.groovy' ]
这将在最后打包插件的时候,排除那些test/demo的资源很有用.
使用插件进行模块化应用开发(Modular Application Development with Plugins)
一个应用可以从任何地方进行加载,甚至都没有安装都可以,要达到如此,你只需要在你的BuildConfig.groovy 文件中指定位置即可:
// Useful to test plugins you are developing. grails.plugin.location.jsecurity = "/home/dilbert/dev/plugins/grails-jsecurity" // Useful for modular applications where all plugins and // applications are in the same directory. grails.plugin.location.'grails-ui' = "../grails-grails-ui"
这样做在以下两处地方有好处:
1. 你正在开发一个插件,但是想在真正的应用中测试,却又不想先打包再安装.
2. 你将一个应用拆分成一系列插件和一个应用,而且这些都在同样的"super-project" 目录中
测试
测试框架
新的测试框架已经被集成到Grails 1.1了
测试框架增加了模仿所有通用类型比如controllers, domain class, tag libraries and url mappings,这样就可以更少更快的运行单元测试.
class SongTests extends grails.test.GrailsUnitTestCase { void testMinimumDuration() { mockDomain(Song) def song = new Song(duration: 0) assertFalse 'validation should have failed', song.validate() assertEquals "min", song.errors.duration } }
数据绑定(Data Binding)--更灵活了
绑定属性的一个子集
更简单的绑定属性子集,以前的语法是:
person.properties = params
这将请求参数中所有数据绑定到person中。如果你不期望这样的行为,你可以使用bindData,而现在你要帮定属性的子集,只需要使用下标操作符(subscript operator)就可以了:
person.properties["firstName","lastName"] = params
要访问领域类属性的子集也是同样的语法:
person.properties["firstName","lastName"].each { println it }
集合类型的帮定
Grails支持象lists, sets和maps集合类型的绑定.
<g:textField name="books[0].title" value="the Stand" /> <g:textField name="books[1].title" value="the Shining" /> <g:textField name="books[2].title" value="Red Madder" />
Grails会根据指定的索引自动的初始化领域对象实例并且赋予相应的关联对象的值
脚手架(Scaffolding)
模板和动态脚手架
通过install-templates命令,可以安装模板,动态脚手架现在使用此模板来运行
支持更多的关联类型
脚手架支持多对多和单向的一对多关联关系

控制器(Controllers)--新特性还不错
更好的RESTful映射
你可以使用如下的REST URLs:
"/books"(resource:"book")
上述示例中URI "/books"将会自动的映射到BookController. 而HTTP的GET, PUT, POST 和DELETE 将会相应地被"show", "save", "update" and "delete"所处理.
处理重复的提交
通过同步令牌模式("Synchronizer Token Pattern"),Grails内建了对重复提交的处理。不过首先你要在form中声明一个令牌:
<g:form useToken="true">
然后通过withForm方法你可以检测出是重复的还是无效的请求:
withForm { // good request }.invalidToken { // bad request }
转发请求(Forwarding Requests)
作为重定向的一个替代,你可以通过forward方法来转发你的一个请求:
forward controller:"home", action:"index"
声明式的错误处理
你可以在你的UrlMappings文件中声明一个特定类型的异常处理:
"500"(controller:"errors", exception:IllegalArgumentException)
视图(Groovy Server Pages)--兼容性更好
在GSP中支持JSP的标签
GSP支持重用JSP的能力:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <fmt:formatNumber value="${10}" pattern=".00"/>
在GSP中也支持方法式的JSP标签调用 :
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ${fmt.formatNumber(value:10, pattern:".00")}
模板的命名空间(Template Namespace)
对于模板的使用来说,增加了一个特定的命名空间,因此一个如下所示的_tableRow.gsp模板:
<tr> <td class="prop">${label}</td> <td class="value">${value}</td> </tr>
可以通过使用tmpl命名来调用:
<tmpl:tableRow label="one" value="two" />
服务器端的包含
新增了一个<g:include>标签在当前的视图中来引入另外一个controller, action 或者 view的响应:
<g:include controller="book" action="list"></g:include>
此标签也可以在 controller 或者 另外的tag library中使用:
def content = include(controller:"book", action:"list")
工程基础架构(Project Infrastructure)--更多更好的构建集成
maven集成
Grails 1.1 comes with an associated Maven plugin and archetype that allows you to build your Grails project easily using Maven. Follow the instructions here and either use the archetype to create a new Grails project, or run:
mvn grails:create-pom
to create a Maven POM for an existing project.
Ant + Ivy 集成
Grails now creates an Ant build.xml and corresponding ivy.xml file for each project allowing you to build a Grails project on any build server that supports Ant (like CruiseControl and Hudson) without needing Grails installed on the target server.
在BeanBuilder中支持Spring的命名空间
Grails' Spring DSL has been extended to include access to the Spring namespace APIs allowing you to easily use Spring advanced AOP support (among other things):
beans = { xmlns aop:"http://www.springframework.org/schema/aop" fred(Person) { name = "Fred" age = 45 } birthdayCardSenderAspect(BirthdayCardSender) aop { config("proxy-target-class":true) { aspect( id:"sendBirthdayCard",ref:"birthdayCardSenderAspect" ) { after method:"onBirthday", pointcut: "execution(void ..Person.birthday()) and this(person)" } } } }
Environment and Metadata API
There is a new API to access the current Environment:
import grails.util.Environment ... switch(Environment.current) { case Environment.DEVELOPMENT: configureForDevelopment() break case Environment.PRODUCTION: configureForProduction() break }
There is also a new class for easily accessing application meta-data:
def metadata = grails.util.Metadata.current println metadata.applicationName println metadata.applicationVersion
Log4j DSL
A new Log4j DSL is available that replaces the old way of configuring Log4j:
log4j = { appenders { rollingFile name: 'fileLog', fileName: 'logs/full.log', maxFileSize: 26214400, maxBackupIndex: 10, layout: pattern(conversionPattern: '%d{yyyy-MM-dd HH:mm:ss,SSS} %p %c{2} %m%n') } root { error() additivity = true } error 'org.codehaus.groovy.grails.web.servlet', // controllers 'org.codehaus.groovy.grails.web.pages' // GSP debug fileLog:'grails.app' warn 'org.mortbay.log' }
Full documentation for the Log4j DSL is available in the user guide.
Flexible Build Configuration
A new grails-app/conf/BuildConfig.groovy file is available that allows you to configure different aspects of the Grails build including output paths and servers used for resolution of plugins:
grails.work.dir="/tmp/work" grails.plugins.dir="/usr/local/grails/plugins" grails.project.test.reports.dir="/usr/local/grails/test-reports"
Non-interactive mode
Grails now supports a --non-interactive flag at the command line that can be passed in order to disable any user prompts:
grails run-app --non-interactive
This is useful for continuous integration servers.
Encrypted Data Sources
DataSource passwords can now be encrypted using a supplied codec class:
dataSource { username = "foo" password = "438uodf9s872398783r" passwordEncryptionCodec="my.company.encryption.BlowfishCodec" }
The supplied codec uses Grails' existing codec mechanism
升级注意事项--有必要专门写个blog总结一下
Grails 1.1 是发生很多重要的变化,但是大部分还是向后兼容的。以下是已知的一些会影响升级的东东:
- 现在插件默认是存储在你的USER_HOME目录,因此你需要重新安装你的那些插件,或者你通过以下的方式来运行:
grails -Dgrails.project.plugins.dir =./plugins run-app或者在BuildConfig.groovy中定义grails.project.plugins.dir =./plugins
- 枚举类型现在缺省将String类型的名称映射到数据库,而不是以前的ordinals
- jsession id被放弃掉了,详细查看GRAILS-3364
- GSP的空格处理比以前更胜,现在你可以比以前写更多的空格,详细参考GRAILS-3277
- grails.testing.reports.destDir配置参数已经被grails.project.test.reports.dir替代
- PreInit.groovy现在已经变成BuildConfig.groovy
- 控制器的allowedMethods属性现在需要被定义为static.
评论
4 楼
热带翎羽
2010-10-09
博主没说重点...

3 楼
agile_boy
2010-10-09
热带翎羽 写道
发现你这里很多都是项目上很需要的技巧,很好奇你是如何学习到的呢?
不抱怨,不折腾。经历越多,收获越多。
2 楼
热带翎羽
2010-10-01
发现你这里很多都是项目上很需要的技巧,很好奇你是如何学习到的呢?
1 楼
Arden
2009-04-21
查询缓存好象很多问题,我用hibernate的查询缓存,会把数据库搞死。~
发表评论
-
Grails跟Hibernate和Mongodb的组合
2011-08-08 23:19 3485标题看起来很噱头哦 先简要说明一下我在项目中的必要场 ... -
一个属性未设置导致发mail不成功的郁闷。
2011-04-10 20:42 2768难得阳光灿烂的周末啊,确被javamail的一个属性未设置 ... -
Grails 关于单元/集成测试
2011-02-17 11:06 2121Grails提供了比较方便的测试,其默认提供了单元,集成测 ... -
[转载]Grails plugins on Hudson
2010-07-03 11:48 1986此文也是因为被“墙”才转载的,原文地址:http: ... -
Grails 1.3的依赖管理
2010-07-03 11:42 3648用Grails做项目以来,基本上一直都是各自独立的项目,也 ... -
[转载] Reading i18n messages from the database with Grails
2010-06-27 23:45 1577如题,此文是Grails的作者的一篇文章,无奈被墙,同时 ... -
[转载] Adventures in Grails – WS-Security Part 2
2010-06-13 23:10 1333原文url:http://axixmiqui.wordp ... -
[转载]Adventures in Grails – WS-Security Part 1
2010-06-06 22:18 1514转载是因为此文网站被墙了。 The next s ... -
grails 1.2 生成相关IDE和ANT的配置文件
2010-01-24 14:48 1305做了一个Grails的小应用测试一下,发现相比1.1.1, ... -
grails,xfire和groovyws共存
2009-09-04 10:25 2289使用Grails开发WebService服务,方便快捷就无须再 ... -
Grails 从1.0.4 到 1.1的升级小结
2009-03-13 13:17 2274先将官方的升级注意事项简单罗列,我也是参照此进行升级的。 ... -
Grails1.0.4的scaffolding
2008-11-17 16:06 1393使用Grails的动态脚手架(dynamic scaffold ... -
grails JobExecutionException编译错误
2008-07-08 11:46 1672使用Grails插件的要注意了,jsecurity中自带了 ... -
Grails 1.0.3发布
2008-06-07 16:45 1965现在想想Grails1.0.2发布也有些许时间了,其间Gr ... -
Grails中文参考手册一审完毕,初步发行一个beta版
2008-05-06 18:10 4399详细信息请参考Grails参考手册的官方信息: http: ... -
Groovy 1.6-beta-1发布,性能有大幅提高!
2008-05-03 14:57 2442感谢G2One和Groovy开发团队为我们发布了Groovy ... -
Grails喜获JAX大奖
2008-04-27 11:36 1683前几天Grails获得提名,现在终于水到渠成了,获得JAX大奖 ... -
Groovy1.5.6发布
2008-04-26 09:55 1780Groovy1.5.5在编译速度有所提升以后,G2ONE很 ... -
Groovy1.5.5发布
2008-04-15 09:38 1671G2One, Inc和Groovy开发小组非常荣幸的宣布:Gr ... -
通过属性字符格式来访问GPath格式的Xml
2008-04-11 11:52 1681GPath方式的Xml访问,为我们的Xml处理提供了极大的 ...
相关推荐
版本号3.4.0.RELEASE表明这是一个正式发布版,而不是测试版或预览版。 #### 2.2 支持的Eclipse版本 此版本的STS是针对Eclipse 4.3.1平台进行构建的,这意味着它与Eclipse 4.3.1版本兼容。Eclipse 4.3.1是Eclipse ...
ABB常用机器人技术参数.pdf
内容概要:本文详细介绍了如何利用西门子1200 PLC及其FB284功能块实现对3台V90伺服电机、相机角度调整以及FANUC机器人的控制。主要内容涵盖FB284功能块的基础参数设置、多台伺服电机的具体控制方法、相机角度调整的实现、DP通讯配置FANUC机器人控制,以及PLC程序注解和触摸屏程序的设计。通过具体代码示例和实际操作步骤,帮助读者理解和掌握这一系列控制技术。 适合人群:具备一定PLC基础知识的工控初学者和技术人员。 使用场景及目标:① 学习并掌握FB284功能块的使用方法;② 实现多台V90伺服电机的协同控制;③ 掌握相机角度调整的技术细节;④ 完成FANUC机器人通过DP通讯的控制配置;⑤ 提高PLC程序的可读性和易维护性。 其他说明:文中提供了丰富的代码片段和配置示例,便于读者实践操作。此外,还分享了一些实际项目中的经验和技巧,有助于提高项目的稳定性和效率。
《计算机常用工具软件(第3版)》第6章--图形图像工具.ppt
内容概要:本文由《未来产业新赛道研究报告》整理而成,涵盖了未来产业在全球范围内的发展态势和竞争形势。报告指出,引领型国家通过全方位体制机制创新,在先进制造、人工智能、量子科技、新一代通信等领域建立了全面领先优势。文中引用了麦肯锡和GVR的数据,预测了人工智能和人形机器人等未来产业的巨大经济潜力。报告还详细介绍了国外和国内对未来产业赛道的重点布局,如量子科技、人工智能、先进网络和通信技术、氢能与储能、生物技术等。此外,报告列举了中国重点省市如北京、上海等的具体发展方向,以及知名研究机构对未来产业热点的分析。最后,报告提出了构建我国未来产业重点赛道目录的建议,包括通用人工智能、高级别自动驾驶、商业航天、人形机器人、新型储能、低空经济、清洁氢、算力芯片、细胞与基因治疗和元宇宙等十大重点赛道。 适用人群:对科技趋势和未来产业发展感兴趣的政策制定者、投资者、企业家和研究人员。 使用场景及目标:①帮助政策制定者了解全球未来产业发展动态,为政策制定提供参考;②为企业提供未来产业布局的方向和重点领域;③为投资者提供投资决策依据,识别未来的投资机会;④为研究人员提供未来科技发展趋势的全景图。 其他说明:报告强调了未来产业在全球经济中的重要性,指出了中国在未来产业布局中的战略定位和发展路径。同时,报告呼吁加强国家顶层设计和行业系统谋划,探索建立未来产业技术预见机制,深化央地联动,推动未来产业高质量发展。
《网络设备安装与调试(神码版)》2交换机的配置.pptx
内容概要:本文详细介绍了自动驾驶路径规划中Lattice算法的基础部分,主要包括三个关键概念和技术实现:参考线生成、Frenet坐标系转换和五次多项式拟合。首先解释了参考线的作用及其生成方法,如三次样条插值和平滑曲线生成。其次探讨了Frenet坐标系的优势,展示了如何将笛卡尔坐标系下的车辆位置投影到参考线上,从而简化路径规划问题。最后讨论了五次多项式的应用,强调其能够确保轨迹的光滑性和舒适性,并提供了详细的Matlab和C++代码实现。 适合人群:对自动驾驶技术感兴趣的开发者、研究人员以及有一定编程基础并希望深入了解路径规划算法的人群。 使用场景及目标:适用于研究和开发自动驾驶系统,特别是进行路径规划模块的设计与实现。主要目标是帮助读者掌握Lattice规划的基本原理和技术细节,以便应用于实际工程项目中。 其他说明:文中不仅有理论讲解,还附带了大量的代码实例,便于读者理解和实践。此外,作者提醒了一些常见的陷阱和注意事项,如避免过拟合、选择合适的插值算法等。
《网络操作系统(Linux)》项目4-磁盘管理.pptx
《计算机应用基础实训指导》实训十八-PowerPoint-2010的动画和切换.pptx
安川机器人DX100使用说明书.1.pdf
《计算机专业英语》Unit-3-What-is-Hardware.ppt
内容概要:本文详细介绍了汇川H5U-A16自动贴布网胶机的PLC控制系统及其与威纶通触摸屏的集成方法。主要内容涵盖伺服轴控制、气缸动作、矩阵托盘管理、OEE统计等方面的编程技巧和优化措施。文中展示了如何将复杂的硬件动作抽象为可复用的功能块(FB),并通过参数配置实现灵活的系统控制。此外,还讨论了如何利用威纶通触摸屏进行实时监控和数据分析,以及如何通过合理的IO表管理和注释提高系统的可维护性和扩展性。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉PLC编程和触摸屏应用的专业人士。 使用场景及目标:适用于需要开发或优化自动贴布网胶机及其他类似自动化设备的企业。主要目标是提升设备的可靠性和效率,降低维护成本,缩短开发周期。 其他说明:本文不仅提供了具体的编程示例,还分享了许多实战经验和技巧,如如何避免常见的错误和陷阱,如何应对特定硬件特性的挑战等。这些内容对于理解和掌握工业自动化系统的开发非常有价值。
内容概要:本文详细介绍了利用Matlab和Simulink进行电力系统暂态稳定性分析的方法和技术。首先构建了一个单机无穷大系统的仿真模型,涵盖了同步电机、无穷大电网、输电线路等基础模块的搭建。接着深入探讨了不同类型故障(如短路、断线)的配置方法及其对系统稳定性的影响。针对常见的暂态问题,提出了多种解决方案,包括并联补偿器的应用、自动重合闸的设计以及仿真加速技巧。同时,通过具体案例展示了如何调整关键参数来优化系统性能,确保暂态过程中系统的稳定性和可靠性。 适合人群:从事电力系统研究与开发的技术人员,尤其是对电力系统暂态稳定性感兴趣的工程师和研究人员。 使用场景及目标:适用于需要评估电力系统在突发故障情况下的稳定性的场合,帮助用户掌握故障仿真技术,优化系统设计,提高电力系统的可靠性和安全性。 其他说明:文中提供的代码片段和仿真技巧均经过实际验证,能够显著提升仿真的效率和准确性。建议读者结合自己的项目需求灵活应用相关技术和方法。
内容概要:本文详细介绍了利用FPGA实现永磁同步电机(SPM)的SVPWM控制系统的具体实现方法。系统采用Verilog进行底层硬件时序控制,包括SVPWM模块中的扇区判断、PWM生成以及死区时间控制等;Nios2软核处理器则用于执行控制算法,如磁场定向控制(FOC)、Clarke变换和PID调节器。两者通过Avalon总线连接,实现高效的软硬件协同工作。此外,文中还讨论了一些常见的调试技巧和优化方法,如定点数运算、硬件CRC校验模块的应用等。 适合人群:具备一定FPGA开发经验和电机控制理论基础的技术人员,尤其是从事嵌入式系统开发、自动化控制领域的工程师。 使用场景及目标:适用于需要高精度、高性能电机控制的应用场合,如工业自动化设备、机器人关节控制等。目标是通过软硬件协同设计提高系统的实时性和可靠性,降低电流谐波失真,增强抗干扰能力。 其他说明:文中提供了完整的工程源码和技术细节,有助于读者深入理解和实践。同时,作者分享了许多实用的经验教训,帮助读者避开常见陷阱,提高开发效率。
《移动商务网页设计与制作》第11章--Web-Worker-处理线程.ppt
chromedriver-win64-135.0.7049.114.zip
《计算机系统维护》第14章--硬盘分区的调整.ppt
内容概要:本文深入研究了交错并联Buck变换器的工作原理、性能优势及其具体实现。文章首先介绍了交错并联Buck变换器相较于传统Buck变换器的优势,包括减小输出电流和电压纹波、降低开关管和二极管的电流应力、减小输出滤波电容容量等。接着,文章详细展示了如何通过MATLAB/Simulink建立该变换器的仿真模型,包括参数设置、电路元件添加、PWM信号生成及连接、电压电流测量模块的添加等。此外,还探讨了PID控制器的设计与实现,通过理论分析和仿真验证了其有效性。最后,文章通过多个仿真实验验证了交错并联Buck变换器在纹波性能、器件应力等方面的优势,并分析了不同控制策略的效果,如P、PI、PID控制等。 适合人群:具备一定电力电子基础,对DC-DC变换器特别是交错并联Buck变换器感兴趣的工程师和技术人员。 使用场景及目标:①理解交错并联Buck变换器的工作原理及其相对于传统Buck变换器的优势;②掌握使用MATLAB/Simulink搭建交错并联Buck变换器仿真模型的方法;③学习PID控制器的设计与实现,了解其在电源系统中的应用;④通过仿真实验验证交错并联Buck变换器的性能,评估不同控制策略的效果。 其他说明:本文不仅提供了详细的理论分析,还给出了大量可运行的MATLAB代码,帮助读者更好地理解和实践交错并联Buck变换器的设计与实现。同时,通过对不同控制策略的对比分析,为实际工程应用提供了有价值的参考。
包括:源程序工程文件、Proteus仿真工程文件、电路原理图文件、配套技术手册 1、采用51/52单片机(通用)作为主控芯片; 2、数码管前两位显示分钟,后两位显示秒; 3、可以切换正计时/倒计时; 4、可设置倒计时时间,倒计时结束蜂鸣器报警; 5、计时过程中可记录时刻点 (存储十组记录数据),可翻看记录的数据。
《计算机应用基础实训指导》实训一-文字录入.pptx