- 浏览: 183881 次
最新评论
-
adamed:
zhangwenzhuo 写道为什么this.get()会返回 ...
jQuery源码历代记5 -
zhangwenzhuo:
为什么this.get()会返回本身的呢?
jQuery源码历代记5 -
narutolby:
支持下~,哈哈~
jQuery历代记1 -
cpszy:
mark下
jQuery历代记1 -
gleams:
支持你
jQuery历代记1
Chapter 8. Using Quartz Plug-Ins
第8章 使用Quartz插件
The Quartz framework offers several ways to extend the capabilities of the platform. By using various "hooks" (commonly referred to as extension points), Quartz becomes very easy to extend and customize to suit your needs. One of the easiest methods for extending the framework is to use Quartz plug-ins. This chapter looks at how to use the plug-in mechanism to make Quartz go where no Quartz user has gone before.
<o:p> </o:p>
Quartz框架提供多种方法拓展平台能力。通过使用不同的钩子(hooks)-俗称拓展点,Quartz可以非常简单的拓展定制以满足你的需求。拓展框架最简单的方法就是使用Quartz插件。这一章看一下如何使用插件机制使Quartz达到以前Quartz用户达不到的地方(原文:make Quartz go where no Quartz user has gone before.)。(译者注:此处的意思是使Quartz整合到其他框架中)
<o:p> </o:p>
What Is a Plug-In?<o:p></o:p>
什么是插件<o:p></o:p>
If you have used other open source frameworks such as Apache Struts, you're already familiar with concept of plug-ins and their use. Quite simply, a Quartz plug-in is a Java class that implements the org.quartz.spi.SchedulerPlugin interface and is registered as a plug-in with the Scheduler. The plug-in interface contains three methods and is shown in Listing 8.1.
如果你曾经使用其他开源框架如Apache的Struts,你应该已经熟悉插件这个概念并使用过它了。非常简单的,一个Quartz插件就是一个实现了org.quartz.spi.SchedulerPlugin接口的JAVA类,它在Scheduler中注册为插件。插件的接口包含列表8.1显示的3个方法。
Listing 8.1. A Quartz Plug-In Must Implement the SchedulerPlugin Interface<o:p></o:p>
列表8.1 一个Quartz插件必须实现SchedulerPlugin接口
- public interface SchedulerPlugin {
- public void initialize(String name, Scheduler scheduler)
- throws SchedulerException;
- public void start();
- public void shutdown();
- }
The methods of the SchedulerPlugin are called during the initialization and startup of a Scheduler. The Scheduler calls these methods on every plug-in that is registered. The following sections describe when each method of the plug-in is called.
<o:p> </o:p>
SchedulerPlugin的方法在Scheduler被初始化和启动时被调用。Scheduler依次调用每个注册插件的这些方法。下一段描述了插件中的每个方法在什么时间被调用。
<o:p> </o:p>
The initialize() Method<o:p></o:p>
initialize()方法<o:p></o:p>
The initialize() method is called during the creation of the Scheduler. When the getScheduler() method is called on the StdSchedulerFactory, the factory calls the initialize() method on all the registered plug-ins.
<o:p> </o:p>
initialize()在创建Scheduler时被调用。在StdSchedulerFactory的getScheduler()方法被调用的时候,工厂调用所有注册插件的initialize()方法。
<o:p> </o:p>
Plug-Ins Don't Work with the DirectSchedulerFactory<o:p></o:p> 插件不工作在DirectSchedulerFactory模式下<o:p></o:p> Plug-ins are designed to be used only with the StdSchedulerFactory. It's a limitation within the framework. If you want to use plug-ins, then you'll need to use the StdSchedulerFactory to retrieve your Scheduler instance. <o:p> </o:p> 插件被设计为只在StdSchedulerFactory下使用。这是框架的限制。如果你使用插件那么你必须使用StdSchedulerFactory获取Scheduler的实例。 <o:p> </o:p> |
<o:p> </o:p>
Each plug-in is registered with a unique name. This given name and Scheduler instance is included in the call to the initialize() method. You should take whatever action is necessary to initialize your plug-in. For example, your plug-in might need to read and parse data from a file or database.
<o:p> </o:p>
每个注册的插件都有一个唯一的名字。这个名字与Scheduler实例会包含在调用的initialize()方法中。你应该采取任何必要的操作初始化插件。例如你的插件需要读取并解析文件或数据库中的数据。
<o:p> </o:p>
Scheduler Is Not Fully Set Up at initialize() Time<o:p></o:p> 在initialize()中Scheduler并没有全部设置<o:p></o:p> The Scheduler has not been fully initialized when this method is called, so interaction with the Scheduler should be kept to a minimum. For example, you should not attempt to schedule any jobs during the initialize() method. 当这个方法被调用的时候Scheduler并没有完全被初始化,所以与Scheduler的交互应该保持在最小。例如你不应该在initialize()方法中调度任何Job。 |
<o:p> </o:p>
If there is a problem initializing your plug-in, you should throw an org.quartz.SchedulerConfigException, which is a subclass of SchedulerException. This prevents the plug-in from being loaded and stops any further interaction with the Scheduler.
<o:p> </o:p>
如果在初始化的过程中发生了问题,程序会抛出org.quartz.SchedulerConfigException异常,他是SchedulerException的子类。它防止插件被加载并停止与Scheduler的进一步交互。
<o:p> </o:p>
The start() Method<o:p></o:p>
Start()方法<o:p></o:p>
The Scheduler instance calls the start() method to let the plug-in know that it can perform any startup actions it needs. For example, if you have jobs to schedule, this is the time to schedule them.
<o:p> </o:p>
Scheduler的实例调用start()方法让插件知道它可以完成任何它需要的启动操作。例如如果你有Job需要调度,那么就在这个时候去调度它。
<o:p> </o:p>
The shutdown() Method<o:p></o:p>
<o:p> </o:p>
Shutdown()方法<o:p></o:p>
<o:p> </o:p>
The shutdown() method is called to inform the plug-in that the Scheduler is shutting down. This is an opportunity for the plug-in to clean up any open resources that are open. For example, database connections or open files should be closed.
<o:p> </o:p>
Shutdown()方法通知插件Scheduler已经停止了。这个时候插件可以清理任何开放的资源。例如,数据库连接或关闭打开的文件。
<o:p> </o:p>
Scheduler Instance Not Passed in start() or shutdown()<o:p></o:p> 不要将Scheduler实例传递给start()或shutdown()方法<o:p></o:p> <o:p> </o:p> Notice that the Scheduler instance is not passed as an argument to the start() or shutdown() methods. If your plug-in needs access to the Scheduler during start() or shutdown(), you need to store the Scheduler in an instance variable in the plug-in. 注意,Scheduler实例不能作为参数传递给start()或shutdown()方法。如果你的插件需要在start()或shutdown()方法中访问Scheduler,你需要将Scheduler存储到插件中的实例变量中。 |
<o:p> </o:p>
Creating a Quartz Plug-In<o:p></o:p>
创建一个Quartz插件<o:p></o:p>
Creating a new plug-in is very simple. All you have to do is create a Java class (or reuse an existing one) that implements the org.quartz.spi.SchedulerPlugin interface. The Scheduler will create an instance of the plug-in during startup. The plug-in must have a no-argument constructor and obviously not be abstract.
<o:p> </o:p>
创建一个插件非常简单。你仅仅需要创建一个JAVA类(或重用已经存在的类),该类需要实现org.quartz.spi.SchedulerPlugin接口。Scheduler将会在启动时创建一个插件的实例。插件必须含有一个无参数的构造函数并且不能是虚函数。
<o:p> </o:p>
The JobInitializationPlugin<o:p></o:p>
JobInitializationPlugin插件<o:p></o:p>
The Quartz framework includes a plug-in for loading job and trigger information from an XML file. The plug-in is org.quartz.plugins.xml.JobInitializationPlugin and was discussed briefly back in Chapter 3, "Hello, Quartz." When you use this plug-in, the Quartz framework searches for a file called quartz_jobs.xml and attempts to load job and trigger information from this file.
<o:p> </o:p>
Quartz包含一个从XML文件读取Job和触发器信息的插件。这个插件就是org.quartz.plugins.xml.JobInitializationPlugin并且在第3章 Hello,Quartz中临时讨论了一下。当你使用这个插件的时候,Quartz将查找quartz_jobs.xml文件并且尝试从该文件中读取job和触发器信息。
<o:p> </o:p>
Changing the XML File That the JobInitializationPlugin Loads From<o:p></o:p> 改变JobInitializationPlugin读取的XML文件<o:p></o:p> The plug-in enables you to change the name of the jobs file that it looks for to load job and trigger information. You change it by setting a different filename in the quartz.properties file. We talk more about setting parameters for plug-ins later in this chapter. 插件允许你改变寻找job和触发器信息的文件名。你可以在quartz.properties文件中设置其他的名字。在这章中我们更多的讨论在插件中设置参数。 |
<o:p> </o:p>
As Chapter 3 explained, this plug-in is very convenient when your application requirements don't involve loading job information from a database. It's also very useful during development and testing because you can quickly configure which jobs and triggers are to be fired. That is, arguably, it's easier to modify an XML file than a set of database tables.
<o:p> </o:p>
正如第3章阐述的那样,如果你的应用程序不想从数据库读取job信息时,使用该插件就非常方便。当然,在开发和测试时候也是非常有用的,因为你可能想快速的配置那些job和触发器被执行。综上可知修改XML文件比设置数据库表要简单的多。
<o:p> </o:p>
A nice extension to this idea of loading job and trigger information from an XML file would be to have a directory where you can store job XML files, and, by using a plug-in, the Scheduler would load whatever job files were present. This would enable you to conveniently add or remove jobs at Scheduler startup by simply adding or removing them from the specified directory. In the rest of this chapter, we show you how to build this plug-in.
<o:p> </o:p>
从XML文件加载Job和触发器信息的一个比较好的拓展思想时,你可以建立一个目录存储job的XML文件。通过使用一个插件Scheduler不管job文件是否存在都可以进行加载。这种方式使你方便地通过简单地从目录中添加移除Scheduler启动时加载的Job信息。本章剩下的部分将讲解如何建立这个插件。
<o:p> </o:p>
Creating the JobLoaderPlugin<o:p></o:p>
创建JobLoaderPlugin<o:p></o:p>
<o:p> </o:p>
We call this new plug-in the JobLoaderPlugin. Listing 8.2 shows the JobLoaderPlugin class.
<o:p> </o:p>
我们调用这个新插件(JobLoaderPlugin)列表8.2显示了这个类。
<o:p> </o:p>
Listing 8.2. A Quartz SchedulerPlugin that Loads Multiple Job Files from a Directory<o:p></o:p>
列表8.2一个Quartz 的SchedulerPlugin插件从一个目录中加载多任务文件<o:p></o:p>
- package org.cavaness.quartzbook.chapter8;
- import java.io.File;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerConfigException;
- import org.quartz.SchedulerException;
- import org.quartz.spi.SchedulerPlugin;
- import org.quartz.xml.JobSchedulingDataProcessor;
- public class JobLoaderPlugin implements SchedulerPlugin {
- private static Log logger =
- LogFactory.getLog(JobLoaderPlugin.class);
- // The directory to load jobs from
- private String jobsDirectory;
- // An array of File objects
- private File[] jobFiles = null;
- private String pluginName;
- private Scheduler scheduler;
- private boolean validateXML = true;
- private boolean validateSchema = true;
- public JobLoaderPlugin() {
- }
- public File[] getJobFiles() {
- return jobFiles;
- }
- public void setJobFiles(File[] jobFiles) {
- this.jobFiles = jobFiles;
- }
- public boolean isValidateSchema() {
- return validateSchema;
- }
- public void setValidateSchema(boolean validatingSchema) {
- this.validateSchema = validatingSchema;
- }
- public void initialize(String name, final Scheduler scheduler)
- throws SchedulerException {
- this.pluginName = name;
- this.scheduler = scheduler;
- logger.debug("Registering Plugin " + pluginName);
- // Load the job definitions from the specified directory
- loadJobs();
- }
- private void loadJobs() throws SchedulerException {
- File dir = null;
- // Check directory
- if (getJobsDirectory() == null
- || !(dir =
- new File(getJobsDirectory())).exists()) {
- throw new SchedulerConfigException(
- "The jobs directory was missing "
- + jobsDirectory);
- }
- logger.info("Loading jobs from " + dir.getName());
- // Only XML files, filtering out any directories
- this.jobFiles = dir.listFiles(new XMLFileOnlyFilter());
- }
- public void start() {
- processJobs();
- }
- public void shutdown() {
- // nothing to clean up
- }
- public void processJobs() {
- // There should be at least one job
- if (getJobFiles() == null || getJobFiles().length == 0) {
- return;
- }
- JobSchedulingDataProcessor processor =
- new JobSchedulingDataProcessor(
- true, isValidateXML(), isValidateSchema());
- int size = getJobFiles().length;
- for (int i = 0; i < size; i++) {
- File jobFile = getJobFiles()[i];
- String fileName = jobFile.getAbsolutePath();
- logger.debug("Loading job file: " + fileName);
- try {
- processor.processFileAndScheduleJobs(
- fileName, scheduler, true);
- } catch (Exception ex) {
- logger.error("Error loading jobs: " + fileName);
- logger.error(ex);
- }
- }
- }
- public String getJobsDirectory() {
- return jobsDirectory;
- }
- public void setJobsDirectory(String jobsDirectory) {
- this.jobsDirectory = jobsDirectory;
- }
- public String getPluginName() {
- return pluginName;
- }
- public void setPluginName(String pluginName) {
- this.pluginName = pluginName;
- }
- public boolean isValidateXML() {
- return validateXML;
- }
- public void setValidateXML(boolean validateXML) {
- this.validateXML = validateXML;
- }
- }
The real work of the JobLoaderPlugin in Listing 8.2 is done in just two methods: initialize() and start(). Both are required by the SchedulerPlugin interface. The rest of the methods are just setXXX and getXXX methods to fulfill the JavaBean contract because private properties have been declared.
列表8.2中JobLoaderPlugin插件真正工作的只有2个方法:initialize() 和 start()。2个方法都是SchedulerPlugin接口中定义的。剩下的方法都是JavaBean的get和set方法操作私有属性。
<o:p> </o:p>
The JobLoaderPlugin initialize() Method<o:p></o:p>
JobLoaderPlugin的initialize()方法<o:p></o:p>
<o:p> </o:p>
As you can see, the initialize() method, which is called by the Scheduler, calls the private loadJobs() method. The loadJobs() method uses the jobsDirectory that was passed in from the quartz.properties file to retrieve all XML files stored in that directory. The plug-in doesn't try to schedule the jobs yet because the Scheduler isn't fully instantiated when the plug-in's initialize() method is called. The JobLoaderPlugin simply holds on to an array of File objects, waiting for the start() method to be called. We also hold on to the instance of the Scheduler so that we have access to it when the start() method is called.
<o:p> </o:p>
正如你所见Scheduler调用的initialize()方法调用了私有方法loadJobs()。loadJobs()方法使用从quartz.properties中所有来的储存在Job文件夹中的所有XML文件。暂时插件并不会试图调度job因为在插件的initialize()方法被调用的时候Scheduler还没有完全被初始化。JobLoaderPlugin简单的保存文件对象的数组,等待start()方法被调用。我们也保存了Scheduler的实例这样当start()方法被调用的时候可以访问它。
<o:p> </o:p>
The JobLoaderPlugin start() Method<o:p></o:p>
JobLoaderPlugin的start()方法<o:p></o:p>
When the Scheduler calls the start() method in the JobLoaderPlugin, the start() method calls processJobs(). The processJobs() method loops through the array of job files and loads each one into the Scheduler instance.
<o:p> </o:p>
当Sheduler在JobLoaderPlugin插件中调用start()<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-
发表评论
-
JQuery CookBook翻译连载7(第四章)
2010-06-29 18:45 1021今天超级爆发,整理出来第四章中文版翻译。 -
JQuery CookBook翻译连载6(第三章)
2010-06-29 11:31 1010放出jQuery CookBook翻译的第三章。 最近找工作 ... -
JQuery CookBook 翻译连载6(第2章发布)
2010-06-01 14:15 950jQuery Cookbook第1、2章合订版。 不知 ... -
JQuery CookBook 翻译连载5(第1章发布)
2010-05-16 16:55 928jQuery cookBook 第一章翻译打包发布。 ... -
JQuery CookBook翻译连载1
2010-05-14 11:46 8191.1 在HTML页面中添加j ... -
JQuery CookBook翻译连载2
2010-05-14 11:45 8071.2 在页面DOM加载结束后、整个页面加载结束前执行jQue ... -
JQuery CookBook翻译连载3
2010-05-14 11:34 6991.3 使用选择器及jQuery函 ... -
JQuery CookBook翻译连载4
2010-05-14 11:09 6821.4 在特定的上下文 中查找元素 问 ... -
Quartz Job Scheduling Framework第11章翻译初稿
2007-10-27 15:21 1061内容在附件中 -
Quartz Job Scheduling Framework第7章翻译初稿
2007-10-27 15:18 1135内容在附件中 -
Quartz Job Scheduling Framework第5章翻译初稿
2007-10-27 15:18 965在附件中 -
Quartz Job Scheduling Framework第2章翻译初稿
2007-10-27 15:17 1149在附件中 -
Quartz Job Scheduling Framework第8章翻译初稿 续
2007-09-27 19:46 2164You can have as many properti ... -
Quartz Job Scheduling Framework翻译初稿奉上
2007-09-26 21:55 1592由于时间与水平限制。这本经典书籍翻译的可能并不尽如人意,在此先 ... -
Quartz Job Scheduling Framework第10章翻译初稿 续
2007-09-26 21:53 1996In the example in Listing 10. ... -
Quartz Job Scheduling Framework第10章翻译初稿
2007-09-26 21:40 2596Chapter 10. Using Quartz with J ...
相关推荐
Quartz Job Scheduling Framework是一个强大的、开放源代码的作业调度框架,它使应用程序能够在指定的时间执行任务,无需人工干预。这个框架广泛应用于Java应用程序中,用于实现定时任务和工作流管理。在第11章中,...
在阅读《Quartz Job Scheduling Framework》第5章时,你会了解到如何创建和配置Cron Triggers,如何结合SimpleTrigger和CalendarIntervalTrigger实现不同类型的定时任务,以及如何优化Quartz的配置以适应大规模的...
Quartz Job Scheduling Framework第2章翻译初稿 博文链接:https://adamed.iteye.com/blog/135880
Quartz Job Scheduling Framework是一个强大的、开源的作业调度框架,用于在Java应用程序中安排任务执行。这个框架允许开发者创建和管理作业,以及定义作业的触发时间。第7章的主题聚焦于实现Quartz监听器,这是一个...
亲测正常使用版,代码精简,压缩包也小,程序运行速度更快,效率更高,服务器抗攻击能力更强 功能方面: 仿天涯论坛模板的免费论坛系统在功能方面也很强大!程序本身包含一个PC版网站和一个手机版网站 支持打包APP安装包,开放式PHP原生态模板在线编译,音频视频发布直接生成HTML5代码,能够适应各种界面浏览器
三自由度机械臂神经网络自适应控制,径向基函数逼近动力学与未知反馈状态的高增益观测器应用,机械臂自适应神经网络控制,机械臂为三自由度,神经网络逼近系统的动力学和滞回非线性。 利用径向基函数的神经网络近似机器人的动力学。 对于系统状态未知的输出反馈,采用高增益观测器估计系统状态。 ,核心关键词:机械臂; 自适应神经网络控制; 三自由度; 神经网络逼近; 动力学; 滞回非线性; 径向基函数; 输出反馈; 高增益观测器。,基于神经网络的自适应控制:三自由度机械臂的滞回非线性动力学逼近研究
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
西门子中央空调智能控制程序:标准化冷水机组运行,模糊控制开启与切换策略,自动均衡磨损与故障管理,西门子中央空调程序。 冷水机组程序,标准化很好的程序,内部用的函数封装成标准块。 采用模糊控制,根据需求及制冷量来确定开启冷水机组及冷冻泵,冷却泵的台数。 夏季开启冷水机组,冬季开启锅炉制热 均衡磨损(为了专利保护只可调用,):水泵均衡磨损,冷机均衡磨损,故障,时间到了自动切,根据需求自动启动停止水泵。 需要的老板滴滴中央空调程序。 冷水机组程序,标准化很好的程序, 注:内部用的函数封装成标准块。 可以直接调用,部分源文件有保护, ,西门子中央空调程序; 冷水机组程序; 模糊控制; 开启/关闭机制; 标准化; 函数封装; 均衡磨损; 自动切换; 保护源文件; 老板滴滴中央空调程序,西门子中央空调冷水机组标准化程序:智能控制与均衡磨损管理
三相逆变器并联系统功率均分研究:VSG控制策略下的LCL滤波与预同步技术,多台三相逆变器并联(本模型为三台并联,市面上多为两台并联)matlab simulink仿真。 功能:实现并联系统中各逆变器输出功率均分。 (有能力的话还可以研究下垂特性、功率指令以及静态功工作点三者之间的联系) 控制策略:VSG控制策略(同步机控制) 逆变器主电路:三相逆变器,LCL滤波电路,VSG控制模块。 VSG控制模块:定、转子方程,dq变,电压电流双闭环,预同步,pwm发生器。 ,基于VSG控制的LCL滤波三相逆变器并联系统仿真研究:多台逆变器功率均分与下垂特性分析
2025年高级经济师笔试真题及答案.docx
三相维也纳整流器的双闭环控制仿真模型:电压PI与电流Bang Bang滞后控制器实现单位功率因数与低谐波运行,三相维也纳整流器的仿真模型。 控制算法采用电压和电流双闭环控制。 外部电压环路为PI控制器,内部电流环路为bang bang滞后控制器。 网侧单位功率因数运行,电网电流谐波非常小。 ,三相维也纳整流器; 仿真模型; 电压和电流双闭环控制; PI控制器; bang bang滞后控制器; 网侧单位功率因数运行; 电流谐波。,三相维也纳整流器仿真模型:双闭环控制算法与网侧单位功率因数运行下的电流谐波优化
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:29页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于 B/S 网络结构,在 IDEA 中开发。服务端用 Java 并借 Spring Boot 框架搭建后台。前台采用支持 HTML5 的 VUE 框架。用 MySQL 存储数据,可靠性强。 能学到什么: 使用Spring Boot搭建后台。VUE 框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1737204114470.jpg
Nuclei使用手册,语法,命令,操作,都在其中
汇川PLC三轴简易示教系统:强大可编程,触摸屏操作,四组工艺路径保存,源码可修改,离线仿真学习体验,三轴示教 可编程 触摸屏程序 功能强大 触摸屏 PLC 程序 汇川plc 三轴简易示教系统,学习性强,程序简单易用。 支持工艺路径保存,可以保存四组工艺路径。 每个工艺路径支持示教100步。 汇川H5U与 mcgs触摸屏简易示教系统,支持离线仿真。 有较好的学习性,可以在源码基础上任意修改,注释明确。 注意:源码程序文件。 ,三轴示教; 可编程; 触摸屏程序; 功能强大; PLC程序; 汇川PLC; 工艺路径保存; 离线仿真; 注释明确; 源码程序文件。,"汇川简易示教系统:多轴编程,触摸操作,强大功能与易用性并存"
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:29页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于 B/S 网络结构,在 IDEA 中开发。服务端用 Java 并借 Spring Boot 框架搭建后台。前台采用支持 HTML5 的 VUE 框架。用 MySQL 存储数据,可靠性强。 能学到什么: 使用Spring Boot搭建后台。VUE 框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
"风能储电系统模糊逻辑控制仿真模型研究:通过蓄电池变换器驱动,实现电网惯量供应与功率平滑输出的有效整合",风-储系统仿真模型;通过模糊逻辑控制策略驱动蓄电池变器运行,以达到为电网提供惯量的目的。 可以实现功率平滑输出 ,"模糊逻辑驱动的风储系统模型:提升电网惯量与功率平滑输出的仿真研究"
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
永磁同步电机谐波注入补偿与Simulink模型仿真:电流谐波抑制技术研究,永磁同步电机的谐波注入补偿simulink模型仿真 5次7次电流谐波抑制;^_^ ,核心关键词: 永磁同步电机;谐波注入补偿;Simulink模型仿真;5次7次电流谐波抑制;谐波抑制。,"Simulink模型仿真:永磁同步电机谐波注入补偿策略及5/7次电流谐波抑制"