TMS Parameter Controls
- 格式:pdf
- 大小:375.05 KB
- 文档页数:14
伺服控制器的参数优化方法详解伺服控制器是一种用来控制伺服电机运动的设备,通过调节控制器的参数,可以实现对伺服电机的精确控制。
参数优化是指在给定的系统要求下,通过改变参数的值,使得控制系统的性能得到最佳的改善。
本文将详细介绍伺服控制器的参数优化方法。
一、参数优化的意义在实际应用中,伺服控制器的性能直接影响到系统的运动响应速度、稳定性和精度。
通过参数优化,可以得到最佳的控制效果,提高系统的性能。
参数优化还可以降低系统的能耗,提高系统的稳定性和可靠性,减少故障发生的几率。
二、传统的参数优化方法1.经验法:传统的参数优化方法常常基于工程师的经验和实验数据,通过不断调整参数的值,直到满足系统要求为止。
这种方法简单易行,但需要耗费大量的时间和资源,并且无法保证最优的结果。
2.试错法:试错法是指通过试验和反馈的方式,不断调整参数的值,直到满足系统要求。
这种方法比较直观,但需要通过大量试验来确定参数的值,效率低下。
3.基于模型的优化方法:这种方法基于系统的建模和优化算法,通过数学模型和计算机模拟,得到最佳的参数值。
常用的方法包括遗传算法、粒子群算法等。
这种方法的优点是能够得到较好的优化效果,但需要对系统进行准确的建模和大量的计算,复杂度较高。
三、自适应控制器参数自整定方法自适应控制器是指通过监测和分析控制系统的反馈信号,自动调整控制器的参数,使其适应系统的变化。
常用的自适应控制器参数自整定方法有以下几种:1.极点配置法:极点配置法是通过改变系统的极点位置,来控制系统的动态响应。
通过合理选择极点的位置,可以使系统的稳定性和动态性能得到改善。
但是,该方法需要对系统进行精确的建模和系统的数学分析,适用性受到一定的限制。
2.自调整控制器(SAC):自调整控制器是一种通过不断调整参数来降低系统误差的方法。
它通过分析系统的反馈信号,根据误差的大小和方向,自动调整控制器的参数。
这种方法不需要对系统进行精确的建模,适用性较广。
自动控制原理专业词汇中英文对照中文 英文自动控制 automatic control;cybernation 自动控制系统 automatic control system自动控制理论 automatic control theory经典控制理论 classical control theory现代控制理论 modern control theory智能控制理论 intelligent control theory 开环控制 open-loop control闭环控制 closed-loop control输入量 input输出量 output给定环节 given unit/element比较环节 comparing unit/element放大环节 amplifying unit/element执行环节 actuating unit/element控制环节 controlling unit/element被控对象 (controlled) plant反馈环节 feedback unit/element控制器 controller扰动/干扰 perturbance/disturbance前向通道 forward channel反馈通道 feedback channel 恒值控制系统 constant control system随动控制系统 servo/drive control system 程序控制系统 programmed control system 连续控制系统 continuous control system离散控制系统 discrete control system线性控制系统 linear control system非线性控制系统 nonlinear control system定常/时不变控制系统 time-invariant control system 时变控制系统 time-variant control system 稳定性 stability快速性 rapidity准确性 accuracy数学模型 mathematical model微分方程 differential equation非线性特性 nonlinear characteristic线性化处理 linearization processing泰勒级数 Taylor series传递函数 transfer function比例环节 proportional element积分环节 integrating element一阶惯性环节 first order inertial element二阶惯性环节 second order inertial element二阶震荡环节 second order oscillation element 微分环节 differentiation element一阶微分环节 first order differentiation element二阶微分环节 second order differentiation element 延迟环节 delay element动态结构图 dynamic structure block串联环节 serial unit并联环节 parallel unit信号流图 signal flow graph梅逊增益公式 Mason’s gain formula时域分析法 time domain analysis method性能指标 performance index阶跃函数 step function斜坡函数 ramp function抛物线函数 parabolic function /acceleration function 冲击函数 impulse function正弦函数 sinusoidal function动态/暂态响应 transient response静态/稳态响应 steady-state response 延迟时间 delay time上升时间 rise time峰值时间 peak time调节时间 settling time最大超调量 maximum overshoot稳态误差 steady-state error无阻尼 undamping欠阻尼 underdamping过阻尼 overdamping特征根 eigen root极点 pole零点 zero实轴 real axis虚轴 imaginary axis 稳态/静态分量 steady-state component瞬态/暂态/动态分量 transient component 运动模态 motion mode衰减 attenuation系数 coefficient初相角 initial phase angle响应曲线 response curve主导极点 dominant pole 劳斯稳定判据 Routh stability criterion S平面 S plane胡尔维茨稳定判据 Hurwitz stability criterion 测量误差 measurement error扰动误差 agitation error结构性误差 structural error偏差 deviation根轨迹 root locus 常规根轨迹 routine root locus根轨迹方程 root locus equation 幅值 magnitude幅角 argument对称性 symmetry分离点 separation/break away point会合点 meeting/break-in point渐近线 asymptote出射角 emergence angle/angle of departure入射角 incidence angle/angle of arrival 广义根轨迹 generalized root locus零度根轨迹 zero degree root locus 偶极子 dipole/zero-pole pair 频域分析法 frequency-domain analysis method 频率特性 frequency characteristic极坐标系 polar coordinate system直角坐标系 rectangular coordinate system幅频特性 magnitude-frequency characteristic相频特性 phase-frequency characteristic 幅相频率特性 magnitude-phase frequency characteristic 最小相位系统 minimum phase system非最小相位系统 nonminimum phase system奈奎斯特稳定判据 Nyquist stability criterion 伯德定理 Bode theorem稳定裕度 stability margin幅值裕度 magnitude margin 相位/相角裕度 phase margin对数幅频特性 log magnitude-frequency characteristic 无阻尼自然震荡角频率 undamped oscillation angular frequency 阻尼震荡角频率 damped oscillation angular frequency 阻尼角 damping angle带宽频率 bandwidth frequency 穿越/截止频率 crossover/cutoff frequency 谐振峰值 resonance peak系统校正 system compensation超前校正 lead compensation滞后校正 lag compensation自激震荡 self-excited oscillation死区特性 dead zone characteristic饱和特性 saturation characteristic间隙特性 backlash characteristic描述函数法 describing function method相平面法 phase plane method 采样控制系统 sampling control system数字控制系统 digital control system频谱 frequency spectrum 采样定理 sampling theorem信号重现 signal recurrence拉氏变换 Laplace transformZ变换 Z transform终值定理 final-value theorem差分方程 difference equation迭代法 iterative method 脉冲传递函数 pulse transfer function零阶保持器 zero-order holder映射 mapping方框图 block diagram伯德图 Bode diagram特征方程 characteristic equation可控性 controllability临界阻尼 critical damping阻尼常数 damping constant阻尼比 damping ratio初始状态 initial state初值定理 initial-value theorem反Z变换 inverse Z-transformation负反馈 negative feedback正反馈 positive feedback 尼科尔斯图 Nichols chart部分分式展开 partial fraction expansion 幅角原理 argument principle相对稳定性 relative stability共振频率 resonant frequency劳斯表 Routh tabulation/array奇点 singularity渐进稳定性 asymptotic stability控制精度 control accuracy临界稳定性 critical stability耦合 coupling解耦 decoupling比例积分微分调节器 proportional integral derivative regulator(PID) 串联校正 series/cascade compensation 单输入单输出 single input single output(SISO)多输入多输出 multi input multi output(MIMO)低通滤波器 low pass filter非线性系统 nonlinear system复合控制 compound control衰减振荡 damped oscillation主反馈 monitoring feedback 转折(交接)频率 break frequency稳定焦点/节点 stable focus/node。
汤姆斯自动化科技有限公司中文版1、注意事项谢谢您的惠顾!1.1、前言请在使用仪表前认真阅读本说明书。
1.2、阅读指导TMS-W系列仪表的显示是通过七段数码管(LED)实现的,因此有些字符的显示与用户平时看的有所差别,它们的对应关系如右图1.3、注意事项* 客户打开仪表包装后,请检查仪表外观是否有损坏及产品型号是否与您相符,若有出现上述的问题请立即与本公司更换。
* 请确认仪表的接线无误后方能上电调试。
* 请在仪表允许的工作条件下使用仪表。
非专业人员不得擅自拆开仪表,以免发生危险;* 仪表每年应进行一次计量检定,如果仪表误差超出范围,通常都是由于潮湿、灰尘或腐蚀气体所导致,专业人员可对仪表内部进行清洁及干燥处理,通常这样就能解决问题。
如问题仍不能解决请与公司售后服务人员联系。
2、概述2.1、主要特点* 友好的人机界面,易学易用,操作快捷。
* 采用贴片技术(SMT),设计更加简洁、轻巧。
* 采用开关电源适应85V-265VAC范围或者24VDC电源供电。
* 支持多种输入类型,现场配置灵活方便。
* 模块化结构,灵活配置,方便升级.* 热电偶、热电阻输入采用非线性修正,测量精度高,稳定性好。
2.2、技术指标●输入规格。
输入可兼容:热电偶:K、S、E、J、T、B、N 、Wre325; 热电阻:Cu50、Pt100 ; 线性电压:0-5V、1-5V等线性电流:0-10mA、4-20mA等(若订货时未注明需外接250Ω精密电阻);扩充规格:在保留上述输入规格基础上,允许用户指定一种额外输入规格(非线性输入可能需要提供分度表)●测量范围:K ( -50 ~ 1300℃)、S ( -50 ~ 1700℃)、T ( -200 ~ 350℃) 、E ( 0 ~ 800℃)、J ( 0 ~ 1000℃)、B ( 300 ~ 1800℃)、N ( 0 ~ 1300℃)、Wre325(0~2300℃); Cu50 ( -50 ~ 150℃) 、Pt100 ( -200 ~ 600℃) ; 线性输入:-999-+9999由用户定义●测量误差:0.2级(热电阻热电偶、线性电压、线性电流输入且采用铜电阻补偿或冰点补偿冷端时)。
一种T-S模糊控制器的设计方法谢庆国;万淑芸;赵金【摘要】文章提出了一种比较系统化的T S模糊控制器的设计方法,根据时间最优的原则确定误差最大、最小和居中时的模糊规则,然后根据模糊规则的前件,等比例地确定模糊规则的后件参数.用这种方法设计了交流调速系统的速度控制器,给出了仿真结果.【期刊名称】《电气传动》【年(卷),期】2003(033)002【总页数】4页(P25-27,62)【关键词】T-S模糊控制器模糊规则 PID调节【作者】谢庆国;万淑芸;赵金【作者单位】华中科技大学;华中科技大学;华中科技大学【正文语种】中文【中图分类】工业技术电气传动 2 0 0 3 年第 Z 期————一种 T - S 模糊控制器的设计方法谢庆国万淑芸赵金华中科技大学摘要:文章提出了一种比较系统化的T -S模糊控制器的设计方法,根据时间最优的原则确定误差最大、最小和居中时的模糊规则,然后根据模糊规则的前件,等比例地确定模糊规则的后件参数。
用这种方法设计了交流调速系统的速度控制器,给出了仿真结果。
美■ 词:T -S 模糊控制器模糊规则 PI D 调节A S y s t e m i cD e sig n M e t h o d o l o g y o f T - S F u z z y C o n t r o ll e rX i e Q i n g g u o W a n S h u y u n Z h a o Ji n Ab s t r 8 c t r A s y s t e m i c d e sig n m e t h o d ol o g y o f T - S f u z z y c o n t r oll e r i s p r e s e n t e d i n t h e p a p e r.T h e f u z z y r ul e s wo r k i n g w ith m a x e r r o r , m i n e r r o r a n d m id dl e e r r o r a r e d e t e r m i n e d i n t h e ti m e o p ti m al p ri n ciple.T h e n t h e c o n - se q u e n c e c o e fficie n ts of f u z zy r ule s a r e d et e r m i n ed b y th e s e v al u e s of th e a n t e c ed e n t s e t s i n g e o m etric p r o p o r -ti o n.F i n ally , a s a n e x a m pl e , t h e s p e e d c o n t r o ll e r o f A C v a ri a b l e s p e e d s y s t e m i s d e sig n e d w ith s i m u l a ti o n r e - su l t s p r e s e n t e d a s { oll o w i n g.Ke y w o r d s : T - S f u z z y c o n t r olle r f u z z y r u l e s P I D r e g u l a ti o n1 引言模糊推理是模糊控制器设计的主要内容之一。
伺服系统的参数设定与调整方法伺服系统是一种常见的控制系统,广泛应用于各种机械设备中。
准确的参数设定和调整对于伺服系统的性能和稳定性至关重要。
本文将介绍伺服系统参数设定和调整的方法。
一、伺服系统参数设定方法伺服系统的参数设定是指根据实际需求,确定控制系统中的参数数值。
常见的参数包括比例增益、积分时间和微分时间等。
以下是一些常用的伺服系统参数设定的方法:1. 衰减法:通过衰减法可以较为准确地估计参数。
首先将伺服系统给予一个较大的幅值输入信号,观察输出信号的衰减情况。
通过分析衰减的速度和振荡周期等参数,可以确定系统的阻尼比和固有频率,从而设定PID控制器的参数。
2. 格里德法:格里德法是一种基于试错原理的参数设定方法。
系统首先设定一个较小的比例增益值,然后逐渐增大这个值,观察系统的响应。
如果系统出现振荡,则减小比例增益值;如果系统响应较慢,则增大比例增益值。
通过不断试错和调整,最终确定合适的比例增益。
3. 找根法:找根法是一种通过根轨迹的方法来确定参数的设定值。
通过分析系统的特征方程,可以画出系统的根轨迹。
根轨迹的形状和分布可以反映系统的稳定性和灵敏性。
根据根轨迹的情况,可以调整PID控制器的参数。
二、伺服系统参数调整方法伺服系统参数调整是指根据实际的运行效果和性能要求,微调参数的数值。
以下是几种常用的伺服系统参数调整的方法:1. 自适应控制:自适应控制是指根据系统的实时响应和状态,自动调整参数的数值。
自适应控制可以根据实际需求动态地修改参数,以提高系统的性能和稳定性。
2. 批量调整法:批量调整法是指通过实验和试验,对整个参数集进行调整。
可以通过设定不同的比例增益、积分时间和微分时间等参数来进行实验,观察系统的响应和性能指标,最终找到最佳的参数组合。
3. 样本跟踪法:样本跟踪法是指通过跟踪样本轨迹来调整参数。
首先设定一个样本轨迹,然后通过观察系统对样本轨迹的响应,逐渐调整参数,直到系统响应与样本轨迹一致。
高速模糊控制器罗门哈斯有限公司,京都,日本编号:123.995归档:Sep.21.1993摘要一个模糊控制器包括一个模糊推理机,规则库,隶属度函数和一个提取器。
规则和隶属度函数是由像EEPROM一样的可擦写内存所构成的。
他们分别为模糊推理机提供一个源规律存储功能和一个公用存储功能。
提取器提供一个输入和输出一致的信号源,并且源规律和公用功能存储器预先对规则数据和公用数据进行存储。
先前存储在规则库和公用功能存储器中的数据被来自提取器中的数据所取代。
关键词:模糊控制;存储器;提取器;EEPROMs要求要求如下:1. 一个模糊控制器在单一薄片半导体基体上形成,包括:一个基于来源于输入信号,存储在规则库和隶属度函数中的用于输出的模糊推理机信号;一个用于存储来自于模糊推理机源规则信号和输出的规则库,他是由一个可读的非挥发性的可擦写存储器构成;一个用来存储来自关于模糊推理机的公用信号和输出功能的隶属度函数他也是由一个可读的非挥发性的可擦写存储器构成;还有一个用来烧入来自规律存储器和隶属度函数的提取器,他是基于模糊推理机所产生的控制信号和模糊推理机的输入信号的。
可读的源规律信息和可读的公用功能信息会被分别的存储在规则库和隶属度函数当中。
其结构中的规则库和隶属度函数会被来自于提取器中的分别存储在各自存储器中的信息所复写。
2. 一个单片模糊控制器依照要求1, 在提取器中有一个用来存储大量的元规则和公用功能信息的存储地址,他们在模糊控制器的实际应用中都会被优先存储。
而存储在规则库和隶属度函数中的数据会在模糊控制器的应用过程中不断的从模糊推理机那得到反馈信号最终在传送到存储器中。
3. 依据要求一,一个单片模糊控制器中的规则库和隶属度函数中包含有电可消除和设计的只读存储器。
4. 模糊控制器包扩有:一个用来将预先的输入的信号进行模糊控制后进行控制信号输出的模糊推理机,一个源规则寄存器,一个公用功能寄存器,其中的输入信号,源规则信号和公用功能信号相对于模糊推理机都被作为独立的信号输入。
SIEMENS伺服调试步骤打开伺服调试软件打开软件后按确认将三轴参数32620改为0 并激活参数,伺服调整完毕后改为4进入主页面点击Optimiz/test 进入调试功能选择页面点击Speed contr.loop进入速度环调试页面双击active 改成InactiveStart 开始测量按面板循环启动Display查看图形可通过选择X marker 或者Y marker 移动光标查看响应波形数值如有波形较高的点可调整P1460位置环调整双击active 改变为Inactive 点击Measuring parametersStart下方提示Please press NC START按面板循环启动键进入Display电机震动后出现位置环波形波形出现振幅调整参数32200调整位置环增益时需注意X轴[0]、[1]、Y轴[0]、[1] 、Z轴[0]需设相同该参数为插补三轴增益(需依三轴的最小增益值设定该参数)Z轴[1]、主轴[0]、[1] 需设相同此参数为攻丝参数也可从X、Y、Z及主轴选择最小值将四轴均设为相同值调整Trace创建程序Trace_XAA:G53D0;FFWONFFWOF;SOFTBRISKG01X400F10000; 轴的坐标值为各轴常用工作区域G4F0.5X450G4F0.5GOTO AAM30编辑好后运行程序进入Trace选择与程序对应的轴号Start 进入Display进入Scale双击Auto改为fixed选择测量点一般为移动位置的俩个端点之一MAX值为端点值加0.01 MIN值为端点值减0.01 每个值输入后按回车键确认进入Graph1绿线为实际移动波形蓝线为理论波形观察是否有过切震动等过切可在程序中打开FFWON ,SOFT调整参数32810加大时间常数32420设为“1”激活轴向突变限制32431 调整JERK速度自动优化参数调整:自动优化后参数匹配:MD32200[0] 位置环增益参考值MD32800[0] FFW等效时间参考值0.0015刚性攻丝调整:SP MD32200[1] MD32800[1] 参考值0.0015 位置环增益FFW等效时间Z MD32200[1] MD32800[1] 参考值0.0015 位置环增益FFW等效时间SP MD35210[1]位置环模式加速度MD32431[0-4] MD32432[0-4] 两个参数相同最大轴向突变值最大轨迹运动轴向突变值[0] 100 [0] 100 普通加工[1] 100 [1] 100 普通(定位)[2] 100 [2] 100 粗加工CYCLE832[3] 20 [3] 20 半精加工CYCLE832[4] 20 [4] 20 精加工CYCLE83232431 进给轴设置20-100主軸轉矩利用率不高於85%蘇州珈瑪自動化科技有限公司圆弧调整:32500 :“1”摩擦补偿生效32520最大摩擦补偿值32540摩擦补偿时间常数32630 3:速度控制前馈4:转矩控制前馈前馈控制类型。
资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载数控系统参数设置实验地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容实验七数控系统参数设置一.实验目的1.了解数控系统参数在数控系统中的作用。
2.了解数控系统硬件连接与系统参数的关系。
二.实验内容1.如何显示和查找FANUC 0i Mate-D参数。
2.FANUC 0i Mate-D数控系统参数设定。
三.实验设备1.FANUC 0i Mate-TD CK6132数控车床。
2.FANUC 0i mate-MD XH7132数控加工中心机床。
3.万用表、十字/一字螺丝刀(中、小型各一套)四.实验要点1.FANUC数控系统参数的种类概况。
2.如何查找、调用、显示数控系统参数。
3.数控系统组成与数控系统参数的关系。
五.实验具体要求1.加装数控机床电气控制柜外罩(有机玻璃罩或关紧电器控制柜柜门),机床系统上电前查看机床当前状态,确认外观是否异常;确认急停按钮(红蘑菇钮)是否良好且在按下状态(急停状态);确认各进给轴行程限位开关及其线路是否正常;确认机床当前位置。
2.在数控机床系统上电时,告知小组其他同学,此时不要触碰任何电气控制部件,避免意外触电。
3.在设定或修改数控系统参数时,必须事先弄懂相关参数,必须有明确的操作目的和操作步骤。
4.只能设定或修改本次实验所及的参数,不得随意修改非本次实验参数。
做任何参数的改动都要专门记录所及参数的原始设定值。
六.相关知识与技能机床数据主要由参数、PLC程序、加工程序三大部分组成,而参数学起来是比较枯燥和乏味的,但了解它们的作用很有必要,不仅对电气系统的安装调试,而且对加工过程都有一定影响,会经常修改一些必须的参数,以提高机床的性能,用起来会更加顺畅!参数的分类(这里只介绍主要的几种),FANUC 0I系统主要包括以下参数:有关“设定”的参数;有关阅读机/穿孔机接口的参数;有关轴控制/设定单位的参数;有关坐标系的参数;有关储存行程检测参数;有关进给速度的参数;有关伺服的参数;有关显示及编辑的参数;有关编程的参数;有关螺距误差补偿的参数;有关主轴控制的参数;有关软操作面板的参数;七.实验步骤(一)如何查找显示数控系统参数1.按MDI键盘的功能键[SYSTEM]数次,或在按下功能键[SYSTEM]后,再按下软键[参数],当前显示参数画面。
Microsoft Dynamics AX 2012 R3Pawel Kruk May 2014This document describes the typical steps for building Transportation management (TMS) engines and utilizing them in Microsoft Dynamics AX.Implementing anddeploying Transportation management enginesContentsImplementing and deploying Transportation management engines 3 Prerequisites 3 Architectural background 3 Tutorial: Construct a Hello-World rate engine 4 Tutorial: Enable a Hello-World rate engine 7 More about TMS engine implementation 8Implementing and deploying Transportation management enginesThe Transportation management (TMS) module includes a number of extension points that let you implement custom algorithms to perform tasks that are related to the rating of transport and freight reconciliation. The implementations of the algorithms are called Transportation management engines (also referred to as TMS engines or engines). The engines are delivered as implementations of specific .NET interfaces and deployed on the Microsoft Dynamics AX Application Object Server (AOS) tier. Each Transportation management engine can be switched on and off, and it can also be tuned at runtime, based on Microsoft Dynamics AX data. Some of the most important objectives of these engines are as follows:•Calculation of transportation rate•Calculation of travel distance from point to point•Calculation of the time it takes to travel from point to point•Zone identification of addresses•Distribution of transportation charges for shipments across source document lines (also referred to as apportionment of charges).Microsoft Dynamics AX 2012 R3 includes a number of fully functional engines that are available out of the box. However, in many cases, new engines might be required in order to satisfy contract requirements. For example, there is no engine that calculates freight charge by using a particular algorithm, or an engine might be required to retrieve rating data directly from a web service provided by the carrier.This document explains the typical steps for building Transportation management engines and utilizing them in Microsoft Dynamics AX. It is targeted to engineers who want to learn how to implement and deploy custom Transportation management engines.PrerequisitesMicrosoft Visual Studio Tools for Microsoft Dynamics AX must be installed. For more information, see/en-us/library/gg889157.aspx.Architectural backgroundThe following illustration shows a simplified view of the TMS system.Within TMS, a number of operations might require some kind of data processing that is specific to a particular carrier, such as transportation rate calculation. Typically, this kind of calculation requires a lot of input data, such as the origin and delivery addresses, the size, weight, and number of packages, and the requested delivery date. For a rate shopping operation, you can track this information from the Rate route workbench form. When you initiate a rate shoppingrequest, request XML is constructed in TMS by using one of the X++ classes that are derived from TMSProcessXML_Base. The request XML is passed to the processing system encapsulated in the .NET assembly named Microsoft.Dynamics.Ax.TMS (also referred to as the TMS managed system). The further processing involves instantiation and utilization of one or more Transportation management engines. The final response from the TMS managed system consists of XML, which is interpreted into a result that is persisted in the Microsoft Dynamics AX database.The source code of the TMS managed system is available in the Microsoft Dynamics AX Application Object Tree (AOT), under the following path: \Visual Studio Projects\C Sharp Projects\Microsoft.Dynamics.AX.Tms.All of the engines that are available out of the box in AX 2012 R3 are defined within the TMS managed system itself. We recommend that all custom engines be implemented in a stand-alone assembly. This assembly should be constructed by using Visual Studio Tools for Microsoft Dynamics AX, and its project should be hosted in the AOT. The Microsoft Dynamics AX server infrastructure ensures that the actual project output is deployed to a server-binary location upon AOS startup. Microsoft Dynamics AX models are the recommended vehicles for distributing the TMS engine implementations to customers. For more information about Microsoft Dynamics AX models, see/en-us/library/hh335184.aspx.Tutorial: Construct a Hello-World rate engineFollow these steps to implement a simple rate engine.1.Follow these steps to enable debugging and hot-swapping of assemblies on the Microsoft Dynamics AX server:1.Open the Microsoft Dynamics AX Server Configuration Utility.2.Create a new configuration.3.Select the Enable breakpoints to debug X++ code running on this server and Enable the hot-swapping ofassemblies for each development session check boxes.The following illustration shows the new configuration.4.Click OK to restart the AOS service.2.From the AOT, follow these steps to open the source of Microsoft.Dynamics.Ax.TMS in a new instance of VisualStudio:1.Navigate to \Visual Studio Projects\C Sharp Projects\Microsoft.Dynamics.AX.Tms.2.On the context menu, click Edit to open Visual Studio.3.Follow these steps to add a new C# Class Library project to the solution:1.In Solution Explorer, right-click your solution node, and then click Add > New Project.2.In the C# project templates, select Class Library.3.Enter HelloWorldEngines as the project name.4.Click OK.4.In Solution Explorer, right-click the HelloWorldEngines project node, and then click Add HelloWorldEngines to AOT.5.Follow these steps to add a project-to-project reference from your project to Microsoft.Dynamics.AX.Tms:1.In Solution Explorer, right-click the HelloWorldEngines project node, and then click Add Reference.2.On the Projects tab, select Microsoft.Dynamics.AX.Tms.3.Click OK.The following illustration shows what your solution should now look like in Solution Explorer.6.Follow these steps to enable deployment of the project output to the Microsoft Dynamics AX server:1.In Solution Explorer, select the project node.2.In the Properties window, set the Deploy to Server property to Yes.The following illustration shows the project properties after this change has been made.7.Follow these steps to implement a rate engine called HelloWorldRateEngine:1.In Solution Explorer, rename Class1.cs to HelloWorldRateEngine.cs.2.Implement the HelloWorldRateEngine class.The following example shows how to implement this class.namespace HelloWorldEngines{using System;using System.Xml.Linq;using Microsoft.Dynamics.Ax.Tms;using Microsoft.Dynamics.Ax.Tms.Bll;using Microsoft.Dynamics.Ax.Tms.Data;using Microsoft.Dynamics.Ax.Tms.Utility;/// <summary>///Sample rate engine class using rating formula of quantity * factor./// </summary>public class HelloWorldRateEngine : BaseRateEngine{private const string RATE_FACTOR = “RateFactor”;private decimal rateFactor;/// <summary>///Initializes the engine instance./// </summary>/// <param name=”rateEngine”>Rate engine setup record.</param>/// <param name=”ratingDto”>Rating data transfer object.</param>public override void Initialize(TMSRateEngine rateEngine,RatingDto ratingDto){base.Initialize(rateEngine, ratingDto);RateEngineParameters parameters =new RateEngineParameters(TMSEngine.RateEngine,rateEngine.RateEngineCode);// Try to retrieve decimal value of RateFactor parameter specified// on engine setup Parametersif (!Decimal.TryParse(parameters.RetrieveStringValue(RATE_FACTOR),out rateFactor)){// Throw TMS Exception. The exception message is shown in infolog.// Additional exception data is recorded in// “Transportation system error log”throw TMSException.Create(“HelloWorldRateEngine requires definition of RateFactor parameter with valid decimal value”,TMSExceptionType.TMSEngineSetupException);}}/// <summary>///Calculates rate./// </summary>/// <param name=”transactionFacade”>The request transaction facade.</param>/// <param name=”shipment”>Rated shipment element.</param>/// <param name=”rateMasterCode”>Rate master code.</param>/// <returns>Updated rating data transfer object.</returns>public override RatingDto Rate(TransactionFacade transactionFacade,XElement shipment,string rateMasterCode){// Use extension method to sum down the item// quantity from the shipment XML elementdecimal quantity = shipment.SumDown(ElementXmlConstants.Quantity);// Retrieve or create rating elementXElement rateEntity = shipment.RetrieveOrCreateRatingEntity(this.RatingDto);// Use extension method to record rate// This method does not record additional information// like unit counts, currency etc.rateEntity.AddRate(TmsRateType.Rate, quantity * rateFactor);return this.RatingDto;}}}8.In Solution Explorer, select the HelloWorldEngines project node, and then click Add HelloWorldEngines to AOT.9.Follow these steps to deploy the engine assembly:1.In Solution Explorer, right-click your project node, and then click Deploy.2.Restart AOS.Your engine assembly is now available for use in Microsoft Dynamics AX. You can verify that HelloWorldEngines.dll is available in the following folder: [AOS installation location]\bin\VSAssemblies.Tutorial: Enable a Hello-World rate engineFollow these steps to enable the engine that you implemented and deployed in the previous tutorial.1.Follow these steps to create a rating engine in Microsoft Dynamics AX:1.Click Transportation Management > Setup > Engines > Rate engine to open the Rate engine form.2.Create a new record that refers to the engine that you created in step 4 of the previous tutorial:•Rate engine: HelloWorld•Name: Hello World Rate Engine•Engine assembly: HelloWorldEngines.dll•Engine type: HelloWorldEngines.HelloWorldRateEngineThe following illustration shows the new record.Note: Because your engine does not source any data from Microsoft Dynamics AX, you don’t need to construct andassign a rate base type for it.2.Follow these steps to specify a value for the RateFactor parameter:1.In the Rate engine form, click Parameters.2.Create a parameter record for RateFactor, and assign a value of3.Your engine is now ready for use.To test the engine, assign it to the rating profile of an active carrier, and run the rating, based on a source document that includes at least one line with a specific quantity. The total rate is computed as (Total lines quantity) * (RateFactor value). The Hello-World engine implementation is not currency-sensitive.For more information about how to associate shipping carriers with rate engines, see Set up shipping carriers and carrier groups.More about TMS engine implementation•Extension types– The following table enumerates the most important interfaces and abstract classes for building engine extensions. All these base types are defined in the Microsoft.Dynamics.Ax.Tms.Bll namespace.•User messages– To format a language-specific user message, use the Microsoft.Dynamics.Ax.Tms.TMSGlobal class that is defined in the TMS managed system. This class contains an overloaded method, called getLabel, that lets you retrieve a Microsoft Dynamics AX label in the current user language.•Language-sensitive data– The input and output XML can contain elements that carry language-sensitive data, such as dates or decimal numbers. The TMS managed system enforces that the current language of the thread is set to invariant. Use System.Globalization.CultureInfo.CurrentCulture to serialize and de-serialize XML data. •Accessing data from Microsoft Dynamics AX– A rate engine might require read or write access to the Microsoft Dynamics AX database. We highly recommend that you use proxy classes for .NET interop for interaction with tables in Microsoft Dynamics AX. For more information about proxy classes, see /en-us/library/gg879799.aspx.If you use proxy classes to interact with the Microsoft Dynamics AX database, consider using LINQ to Microsoft Dynamics AX to build and run queries. For more information about LINQ to Microsoft Dynamics AX, see/en-us/library/jj677293.aspx.Out of the box, the TMS managed system provides access to interaction with some of the TMS-specific tables by using proxy classes for .NET interop and LINQ to Microsoft Dynamics AX. You can use theMicrosoft.Dynamics.Ax.Tms.Data.AXDataRepository class to retrieve IQueryable objects for these tables.•Using the common engine data infrastructure– All the engines that are shipped out of the box with AX 2012 R3 require Microsoft Dynamics AX data in order to do the actual calculations. To reduce the cost of building engines that must source data from Microsoft Dynamics AX, the TMS system includes an implementation of a common engine data infrastructure. This feature enables the recording of engine-specific data, without the need to add new Microsoft Dynamics AX tables and build additional Microsoft Dynamics AX forms to maintain data. For more information about how to set up engine metadata, see “Transportation management engines” and “Set uptransportation management engines” under Rating setup in online Help.The TMS system defines a number of tables and Microsoft Dynamics AX forms that enable the recording of engine-specific data. This data is stored in physical table records that contain a number of generic table fields that can be reused for different purposes, depending on the specific engine implementation. For proper UI interpretation of data at runtime, metadata is recorded. For each group of data records that are used by a particular engine, a number of metadata records are required. These metadata records describe the caption, data type, lookup type, and a few other properties for each generic field that the engine is using.Use the following table to find the Microsoft Dynamics AX table that contains data and metadata for a particular type of engine.Send feedback.Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you and your people to make business decisions with greater confidence. Microsoft Dynamics works like and with familiar Microsoft software, automating and streamlining financial, customer relationship, and supply chain processes in a way that helps you drive business success. United States and Canada toll free: (888) 477-7989Worldwide: (1) (701) 281-6500/dynamics。
T-S模糊时滞系统的时滞依赖H∞控制及在NCS中的应用的开题报告一、研究背景及意义在控制系统中,时滞一直是一个重要的研究领域,尤其是在网络控制系统(NCS)中,时滞问题更是不可避免。
T-S模糊时滞系统是时滞系统的一种典型形式,其模糊化的特点使其成为时滞系统的常用模型。
如何对T-S模糊时滞系统进行控制以使其满足设计要求,一直是控制领域研究的热点。
H∞控制在控制领域中占有重要地位,能够实现对系统的鲁棒性设计和性能优化。
因此,研究T-S模糊时滞系统的H∞控制,对于解决复杂实际控制问题具有重大的理论和实践意义。
同时,在NCS 中,如何保证数据传输的可靠性和实时性,也是当前研究的重点方向。
二、研究内容本文的主要研究内容包括以下两个方面:1. T-S模糊时滞系统的时滞依赖H∞控制针对T-S模糊时滞系统,本文探究了一种基于H∞的控制方法,该方法能够解决时滞系统的不确定性和扰动问题。
该方法利用线性矩阵不等式(LMI)的方法进行分析,并设计了具有稳定性和鲁棒性的控制器,实现对时滞系统的控制。
同时,本文还研究了系统模型的不确定性和非线性影响的情况,以进一步提高系统性能和鲁棒性。
2. T-S模糊时滞系统的应用于NCS中针对NCS中的数据传输问题,本文研究了一种基于T-S模糊时滞系统的控制方法。
该控制方法包括两个部分:数据传输延迟模型和控制器设计。
针对数据传输延迟模型,本文采用广义Kalman滤波器(GKF)的方法进行建模,并设计了一个带有变结构控制器的延迟补偿控制策略。
通过仿真实验,验证了该方法能够有效提高NCS的鲁棒性和实时性。
三、研究意义本文的研究对于理论和实践都具有重要的意义。
在理论上,本文研究了T-S模糊时滞系统的H∞控制方法,该方法通过LMI分析法,设计了具有稳定性和鲁棒性的控制器,为时滞系统的控制研究提供了新思路。
同时,本文还研究了系统的不确定性和非线性影响,为解决复杂实际问题提供了参考。
在实践中,本文利用T-S模糊时滞系统的控制方法,解决了NCS中的数据传输延迟问题,实现了对系统的实时性和鲁棒性控制,为实际应用提供了有效的解决方案。
TMS SOFTWAREParameter ControlsDEVELOPERS GUIDEDocumentation: Oct, 2010 Copyright © 2010 by bvba Web: Email : info@Table of contentsAvailability (3)Introduction (3)Overview of supported HTML tags (3)HTML related properties (6)HTML related events (8)The <A> anchor parameter tag (8)Runtime control of parameter editors (10)Common parameter control properties and methods (11)Using custom inplace editors (13)AvailabilityTMS Parameter controls are available for Delphi 5,6,7,2005,2006,2007,2009,2010,XE and C++Builder 5,6,2006,2007,2009,2010,XE. TMS Parameter controls can be used on Windows 2000, Windows XP, Windows Vista, Windows 7. The TMS Parameter controls use Windows XP or higher visual styles when used on Windows XP or higher with Windows XP or higher visual styles enabled.IntroductionTMS Parameter controls consist currently of 4 components: TParamLabel, TParamListBox, TParamCheckList and TParamTreeview. The parameter controls enable building various types of informative user entry screens such as the Outlook Inbox rules wizard, end-user SQL building tools and much more. The parameter controls layout is managed through HTML formatting. The HTML tag that handles parameter input is the <A> anchor tag. The <A> anchor tag and its options to control the parameter input are explained in detail in this document.Overview of supported HTML tags∙ B : Bold tag<B> : start bold text</B> : end bold textExample : This is a <B>test</B>∙U : Underline tag<U> : start underlined text</U> : end underlined textExample : This is a <U>test</U>∙I : Italic tag<I> : start italic text</I> : end italic textExample : This is a <I>test</I>∙S : Strikeout tag<S> : start strike-through text</S> : end strike-through textExample : This is a <S>test</S>∙ A : anchor tag<A href="value"> : text after tag can be a parameter. The 'value' after the href identifier is theparameter identifier which must be a unique value for the component. The anchor value can be found in the OnAnchorClick event</A> : end of anchorMore information and details on the anchor tag for parameter control is available in the next paragraphs.∙FONT : font specifier tag<FONT face='facevalue' size='sizevalue' color='colorvalue' bgcolor='colorvalue'> : specifies font of text after tag.with- face : name of the font- size : HTML style size if smaller than 5, otherwise pointsize of the font- color : font color with either hexidecimal color specification or Borland style color name, ie clRed,clYellow,clWhite ... etc- bgcolor : background color with either hexidecimal color specification or Borland style color name</FONT> : ends font settingExamples :This is a <FONT face="Arial" size="12" color="clRed">test</FONT>This is a <FONT face="Arial" size="12" color="#FF0000">test</FONT>∙P : paragraph<P align="alignvalue" [bgcolor="colorvalue"] [bgcolorto="colorvalue"]> : starts a new paragraph, with left, right or center alignment. The paragraph background color is set by the optional bgcolor parameter. If the bgcolorto attribute is used, a paragraph will have a gradient background from color ‘bgcolor’ to color ‘bgcolorto’</P> : end of paragraphExample : <P align="right">This is a test</P>Example : <P align="center">This is a test</P>Example : <P align="left" bgcolor="#ff0000">This has a red background</P>Example : <P align="right" bgcolor="clYellow">This has a yellow background</P>Example : <P align="right" bgcolor="clYellow" bgcolorto=”clred”>A gradient background</P>∙HR : horizontal line<HR> : inserts linebreak with horizontal line∙BR : linebreak<BR> : inserts a linebreak∙BODY : body color / background specifier<BODY bgcolor="colorvalue" background="imagefile specifier"> : sets the background color of the HTML text or the background bitmap fileExample :<BODY bgcolor="clYellow"> : sets background color to yellow<BODY background="file://c:\test.bmp"> : sets tiled background to file test.bmp∙IND : indent tagThis is not part of the standard HTML tags but can be used to easily create multicolumn text<IND x="indent"> : indents with "indent" pixelsExample :This will be <IND x="75">indented 75 pixels.∙IMG : image tag<IMG src="specifier:name" [align="specifier"] [width="width"] [height="height"][alt="specifier:name"] > : inserts an image at the locationspecifier can be :idx : name is the index of the image in the associated imagelistssys : name is the index of the small image in the system imagelist or a filename for which the corresponding system imagelist is searchedlsys : same as ssys, but for large system imagelist imagefile : name is the full filename specifierres : name of a resource bitmap (not visible at design time)Optionally, an alignment tag can be included. If no alignment is included, the text alignment with respect to the image is bottom. Other possibilities are : align="top" and align="middle"The width & height to render the image can be specified as well. If the image is embedded in anchor tags, a different image can be displayed when the mouse is in the image area through the Alt attribute.Examples :This is an image <IMG src="idx:1" align="top">This is an image <IMG src="ssys:1"> and another one <IMG src="ssys:worfile.doc">This is an image <IMG src="file://c:\my documents\test.bmp">This is an image <IMG src="res://BITMAP1">This is an image <IMG src="res://BITMAP1" width=”32” height=”32”>∙SUB : subscript tag<SUB> : start subscript text</SUB> : end subscript textExample : This is <SUP>9</SUP>/<SUB>16</SUB> looks like 9/16∙SUP : superscript tag<SUP> : start superscript text</SUP> : end superscript text∙UL : list tag<UL> : start unordered list tag</UL> : end unordered listExample :<UL><LI>List item 1<LI>List item 2<UL><LI> Sub list item A<LI> Sub list item B</UL><LI>List item 3</UL>∙LI : list item<LI> : new list item∙SHAD : text with shadow<SHAD> : start text with shadow</SHAD> : end text with shadow∙Z : hidden text<Z> : start hidden text</Z> : end hidden text∙HI : hilight<HI> : start text hilighting</HI> : stop text hilighting∙ E : Error marking<E> : start error marker</E> : stop error marker∙Special charactersFollowing standard HTML special characters are supported :< : less than : <> : greater than : >& : &" : " : non breaking space™ : trademark symbol€ : euro symbol§ : section symbol© : copyright symbol¶ : paragraph symbolHTML related propertiesThe parameter controls share properties that further control the appearance and behaviour of the HTML formatted content. Following properties are available:EmptyParam: stringThis property sets the text to display for parameters that are empty, ie. Zero length strin gs. The default value is ‘?’Hover: boolean;When true, parameters are highlighted with the colors HoverColor and HoverFontColor when the mouse is over a parameter.HoverColor: TColor;Sets the background color for a parameter when the mouse is over it.HoverFontColor: TColor;Sets the text color for a parameter when the mouse is over it.LineSpacing: Integer;This property sets the default spacing (in pixels) between two lines of HTML formatted text.ParamHint: Boolean;When true, a hint is displayed (if ShowHint = true) when the mouse is over a parameter. The hint can be set dynamically through the event OnParamHint or can be set as attribute of the parameter. See parameter attributes.ParamColor: TColor;Sets the text color for parameters.ShadowColor: TColor;Sets the color of shadows for HTML formatted text that has a shadow through the <SHAD> tagShadowOffset: Integer;Sets the offset of the displayed shadow for text with the <SHAD> tag.HTML related eventsThe parameters that can be added inside controls cause following events when the mouse is over or clicked on the parameter. The events are:OnAnchorClick : triggered when a hyperlink is clicked on a parameterOnAnchorEnter : triggered when the mouse enters a parameterOnAnchorExit : triggered when the mouse leaves a parameterExample:A hyperlink is added with‘This is a <a href=”my param”>paramvalue<a>’;When the mouse clicked on the parameter, the OnAnchorClick is called with a reference to the parameter identifier ‘myparam’ and the parameter value ‘paramvalue’The <A> anchor parameter tagThe structure of the <A> anchor parameter tag is:<A href=”paramid” class=”paramtype” props=”paramprops” hint=”paramhint”>paramvalue</a> with:paramid: a unique parameter identifier. Through this identifier the value of the parameter can be retrieved or set.paramtype: defines the type of inplace editor that is used to edit the parameter value. The paramtype can be:LIST : a listbox is used, the PROPS attribute specifies the listbox elementsMENU : a popup menu is used, the PROPS attribute specifies the popup menu itemsEDIT : a simple inplace editor is usedSPIN : an inplace spin editor is usedDATE : an inplace date picker is used.TIME : an inplace time selector is usedMASK : an inplace mask editor is used, the mask value is set in the PROPS attributeQUERY : an input query dialog can be usedDIR : a directory picker is usedCUSTOM : a custom inplace editor is usedTOGGLE : toggles between two values in the PROPS attributeIf paramtype is empty or not defined, the <A> tag behaves like a normal hyperlink. paramprops: sets the properties (when used) for the inplace editor, this is in particular a list of options for popup list editor and popup menu editor. The values in the PROPS attribute areseparated by the | character. The paramprops attribute is only used for LIST, MENU and MASK edit types.paramhint: sets the hint to display when the mouse is over the parameter. This attribute is optional.Examples:A normal edit parameter:<A href="edit" class="EDIT">10</A>A mask parameter:<A href="mask" class="MASK" props="9999">1234</A>A menu parameter:<A href="menu" class="MENU" props="Menu item 1|Menu item 2|Menu item 3|Menu item 4">?</A> Note that the HTML formatted control text and parameters can be set at design time with special property editors that facilitate the construction of the required HTML.Runtime control of parameter editorsWith the events OnParamList and OnParamPopup, the list of values to select from either through a popup listbox or a popup menu can be set dynamically at runtime.OnParamList:This event returns the href and value of the parameter clicked and allows setting of the values that will appear in the dropdown listbox. If the doPopup parameter is returned true, the dropdown list will appear. The values of the list can be set through the stringlist Values parameter.Example:doPopup := (href = 'tool');values.Add('Delphi');values.Add('C++Builder');values.Add('JBuilder');OnParamPopup :This event is similar to the OnParamList except that it controls the popup menu for parameter selection. This event returns the href and value of the parameter clicked and allows setting of the values that will appear in the popup menu. If the doPopup parameter is returned true, the popup menu will appear. The values of the popup menu can be set through the stringlist Values parameter.Example:doPopup := (href='tool') or (href='os');if (href = 'tool') thenbeginvalues.Add('Delphi');values.Add('C++Builder');values.Add('JBuilder');end;if (href = 'os') thenbeginvalues.Add('Windows');values.Add('Linux');values.Add('Solaris');end;With the event OnParamClick, either parameters can be edited or for regular hyperlinks, a browser can be opened or another action executed. The event returns the href and value of the parameter clicked. The value can be changed in code.Example 1: (this toggles the value between Delphi & C++Builder)If the control contains the text:Select your tool : <A href="tool">Delphi</A> and OS : <A href="os">Windows</A>if (href = 'tool') and (value = 'Delphi') thenvalue := 'C++Builder'elsevalue := 'Delphi';Example 2: (this asks the user for the value)if (href = 'os') thenInputQuery('Operating system','Name',value);Common parameter control properties and methodsPropertiesControl.Parameter[href:string]: string;Property through which parameter values can be set and retrieved. Note that href is the unique parameter identifier in the control.Example:Select your tool : <A href="tool">Delphi</A> and OS : <A href="os">Windows</A>The parameter values can here be obtained through :varos,tool: string;tool := control.Parameter['tool'];os := control.Parameter['os'];The parameter values can be set through :control.Parameter['tool'] := 'Kylix';control.Parameter['os'] := 'Linux';Control.ParamRefCount: Integer;Returns the number of parameters in the controlControl.ParamRefs[idx: Integer]: string;Returns the parameter identifier for the parameter idx in the controlControl.ParamIndex[href: Integer]: Integer;Returns the index of the parameter with href identifier in the controlControl.ParamRect[href: Integer]: TRect;Returns the rectangle where the parameter with href identifier is located in the controlControl.FocusParam: Integer;Gets or sets the focus on the parameter at FocusParam index in the controlControl.ParamItemRefCount[Item: Integer]: Integer;Only available in TParamListBox and TParamCheckList. Returns the number of parameters at a given item.Control.ParamItemRefs[Item,Index: Integer]: string;Only available in TParamListBox and TParamCheckList. Returns the parameter identifier for the parameter idx in the item Item in the controlControl.ParamItemIndex[Index: Integer; href:string]: Integer;Only available in TParamListBox and TParamCheckList. Returns the index of the parameter with href identifier in the item Index in the controlControl.ItemParameter[index: Integer; href: string]: string;Only available in TParamListBox and TParamCheckList. Property through which parameter values can be set and retrieved for item Index in the listControl.ParamRefNode[href]: TTreeNode;Only available in TParamTreeview. Returns the node where the parameter with identifier href is located.Control.ParamNodeRefCount[Item: Integer]: Integer;Only available in TParamTreeview. Returns the number of parameters at Node with index Item. Control.ParamNodeRefs[Item, Index: Integer]: string;Only available in TParamTreeview. Returns the parameter identifier for the parameter Index in the Node Item in the controlControl.ParamNodeIndex[Node: TTreeNode; href: string]: Integer;Only available in TParamTreeview. Returns the index of the parameter with href identifier in the node Node in the controlMethodsprocedure EditParam(href: string);Starts inplace editing of parameter with identifier hreffunction GetParamInfo(href: string; var AValue,AClass,AProp,AHint: string): Boolean;If the parameter identifier href is found, it returns the parameter value and attributesUsing custom inplace editorsUsing custom inplace editors is possible with the Parameter controls but require some preparing of the inplace editor to be used correct. The custom inplace editor is invoked with th e style ‘CUSTOM’, ie:<A href=”mycustomcontrol” class=”CUSTOM” props=”myprops”>?</A>Parameter control eventsWhen the custom inplace editor is about to be edited, the event OnParamCustomEdit is triggered with parameters:For TParamLabel:TParamCustomEditEvent = procedure(Sender: TObject; href, value, props: string; EditRect: TRect) of object;For TParamListBox and TParamCheckList:TParamCustomEditEvent = procedure(Sender: TObject; idx: Integer; href, value, props: string; EditRect: TRect) of object;For TParamTreeView:TParamCustomEditEvent = procedure(Sender: TObject; Node: TTreeNode; href, value, props: string; EditRect: TRect) of object;The href parameter is the unique ID of the parameter in the control. The value parameter contains the current value of the parameter, the props parameter the value of the PROPS attribute. Last parameter is the rectangle where the inplace editor should be positioned. For the TParamListBox and TParamCheckList, an additional idx parameter refers to the item in the list where the parameter is located, for the TParamTreeView, the Node parameter refers to the node where the parameter is located.From this event, following code can be used to show the custom inplace edit control: mycustomcontrol.Parent := Sender;mycustomcontrol.left := EditRect.Left;mycustomcontrol.Top := EditRect.Top;mycustomcontrol.Text := value;mycustomcontrol.Param := href;mycustomcontrol.OnUpdate := (Sender as TParamlabel).ControlUpdate; mycustomcontrol.Visible := true;mycustomcontrol.SetFocus;The ControlUpdate procedure is defined in the parameter component and will set the new parameter value when the editing is done. ControlUpdate is defined as:procedure ControlUpdate(Sender: TObject; Param,Text:string);with Param the unique parameter identifier and Text the parameter value to set.Preparing the inplace edit controlCreate a descendent component of the inplace edit control with following properties and events: TParamUpdateEvent = procedure(Sender: TObject; Param, Text: string) of object;TMyCustomControl = class(TMyControl)privateFParam: string;FOnUpdate: TParamUpdateEvent;procedure WMActivate(var Message: TWMActivate); message WM_ACTIVATE; protectedprocedure DoExit; override;procedure CreateParams(var Params: TCreateParams); override;publicproperty Param: string read FParam write FParam;property OnUpdate: TParamUpdateEvent read FOnUpdate write FOnUpdate; end;The implementation for this descendent control is then:{ TMyCustomControl }procedure TMyCustomControl.CreateParams(var Params: TCreateParams);begininherited;with Params doStyle := Style AND NOT WS_CHILD OR WS_POPUP;end;procedure TMyCustomControl.DoExit;begininherited;if Assigned(OnUpdate) thenOnUpdate(Self,Param,Text);end;procedure TMyCustomControl.WMActivate(var Message: TWMActivate);begininherited;if Message.Active = 0 thenHide;end;Using the custom inplace editor can be done by putting an component on the form where the parameter control is used and set its visible property to False. The inplace editor will then be displayed when the OnParamCustomEdit event is triggered.。