触摸屏与伺服驱动器APCM模式编程总结
- 格式:docx
- 大小:32.23 KB
- 文档页数:12
PCM ADPCM编译码实验报告姓名:专业:学号:PCM/ADPCM编码实验一、实验目的1、了解语音编码的工作原理,验证pcm/adpcm编译码原理。
2、熟悉pcm/adpcm抽样时钟,编码数据和输入速出时钟之间的关系。
3、了解pcm/adpcm专用大规模集成电路的工作原理和应用4、熟悉语音数字化技术的主要指标及测量方法。
二、实验仪器1、 JH5001通信原理综合实验系统。
2、 20M双踪示波器。
3、信号源。
4、音频信道传输损伤测试仪。
三、实验原理TP501 TP502 至用户接口 K501 N 测试信号 T 跳线器·· - + K502 · T · N··发PCM码字U502 PCM 编译码器 TP504 8KHz同步 256KHz时钟 K504 跳线器TP503 至用户接口 K503 T ···N·· - · + TP505 LOOP ADPCM2 MUX TP506 收PCM码字图3. 1 PCM模块电路组成框图 1、PCM/ADPCM编译码模块中,收、发两个支路组成,在发送支路上发送信号经U501A运放后放大后,送入U502的2脚进行PCM/ADPCM编码。
编码输出时钟为BCLK,编码数据从U502的20脚输出,FSX为编码抽样时钟。
编码之后的数据结果送入后续数据复接模块进行处理,或直接送到对方PCM/ADPCM译码单元。
在接收支路中,收数据是来自解数据复接模块的信号,或是直接来自对方PCM/ADPCM编码单元信号,在接收帧同步时钟FSX与接收输入时钟BCLK的共同作用下,将接收数据送入U502中进行PCM/ADPCM译码。
译码之后的模拟信号经运放U501B放大缓冲输出,送到用户接口模块中。
2、各跳线功能如下:1、跳线开关K501是用于选择输入信号,当K501置于N 位置时,选择来自用户接口单元的话音信号;当K501置于T 位置时选择测试信号。
PLC触摸屏控制伺服电机程序设计摘要:以三菱公司的FX3U-48MT-ES-A作为控制元件,GT1155-QFBD-C 作为操作元件直接控制三菱伺服电机的具体程序设计。
关键词:PLC; 触摸屏; 伺服电机伺服电机又称执行电机,它是控制电机的一种。
它是一种用电脉冲信号进行控制的,并将脉冲信号转变成相应的角位移或直线位移和角速度的执行元件。
根据控制对象的不同,由伺服电机组成的伺服系统一般有三种基本控制方式,即位置控制、速度控制、力矩控制。
本系统我们采用位置控制。
PLC在自动化控制领域中,应用十分广泛。
尤其是近几年PLC在处理速度,指令及容量、单轴控制方面得到飞速的发展,使得PLC在控制伺服电机方面也变得简单易行。
1控制系统中元件的选型1.1PLC的选型因为伺服电机的位移量与输入脉冲个数成正比,伺服电机的转速与脉冲频率成正比,所以我们需要对电机的脉冲个数和脉冲频率进行精确控制。
且由于伺服电机具有无累计误差、跟踪性能好的优点,伺服电机的控制主要采用开环数字控制系统,通常在使用时要搭配伺服驱动器进行控制,而伺服电机驱动器采用了大规模集成电路,具有高抗干扰性及快速的响应性。
在使用伺服驱动器时,往往需要较高频率的脉冲,所以就要求所使用的PLC能产生高频率脉冲。
三菱公司的FX3U晶体管输出的PLC可以进行6点同时100 kHz高速计数及3轴独立100 kHz的定位功能,并且可以通过基本指令0.065 μs、PCMIX值实现了以4.5倍的高速度,完全满足了我们控制伺服电机的要求,所以我们选用FX3U-48MT-ES-A型PLC。
1.2伺服电机的选型在选择伺服电机和驱动器时,只需要知道电机驱动负载的转距要求及安装方式即可,我们选择额定转距为2.4 N·m,额定转速为3 000 r/min,每转为131 072 p/rev分辨率的三菱公司HF-KE73W1-S100伺服电机,与之配套使用的驱动器我们选用MR-E-70A-KH003伺服驱动器。
伺服控制器与HMI的数据交互技术伺服控制器(Servo Controller)和HMI(Human Machine Interface)是现代工业自动化中常用的两个设备。
伺服控制器负责控制伺服电机的运动,而HMI则负责与操作人员进行交互和显示相关的信息。
伺服控制器与HMI之间的数据交互技术,是实现工业自动化系统高效运行的重要组成部分。
一、伺服控制器与HMI的基本概念1. 伺服控制器伺服控制器是一种能够根据控制信号来精确控制伺服电机的设备。
它通常包括多个输入输出接口,用于接收传感器的反馈信号和发送控制信号给伺服电机。
伺服控制器的核心部分是控制算法,利用这些算法可以精确控制伺服电机的位置、速度和加速度。
2. HMIHMI是人机交互界面的缩写,用于描述人和机器之间进行信息交互的界面。
它通常由显示屏、按键、指示灯等组成,可以向操作人员显示相关的信息,并接受人员的输入命令。
HMI的设计直接影响到操作人员与自动化系统的交互效果和操作效率。
二、伺服控制器与HMI的数据交互方式伺服控制器与HMI之间的数据交互是实现工业自动化系统集中控制和监控的关键所在。
下面介绍几种常见的数据交互方式。
1. 串口通信串口通信是最常见也是最简单的伺服控制器与HMI之间的数据交互方式。
通过连接一个串口线,伺服控制器可以将控制指令发送给HMI,同时接收HMI传来的数据。
这种方式适用于简单的控制和数据传输场景,但速度较慢,不适合大规模数据交互。
2. 以太网通信以太网通信是实现伺服控制器与HMI高效数据交互的一种方式。
通过以太网连接,伺服控制器和HMI可以快速、稳定地进行数据传输。
以太网通信可支持更复杂的数据交互,例如实时监控、远程控制等。
此外,以太网通信还可以实现多台伺服控制器和HMI之间的数据互联。
3. 总线通信总线通信是一种广泛应用于工业自动化领域的数据交互方式。
通过将伺服控制器和HMI连接到同一条总线上,可以实现多设备之间的高效通信。
PLC触摸屏控制伺服电机程序设计摘要:以三菱公司的FX3U-48MT-ES-A作为控制元件,GT1155-QFBD-C作为操作元件直接控制三菱伺服电机的具体程序设计。
关键词:PLC; 触摸屏; 伺服电机伺服电机又称执行电机,它是控制电机的一种。
它是一种用电脉冲信号进行控制的,并将脉冲信号转变成相应的角位移或直线位移和角速度的执行元件。
根据控制对象的不同,由伺服电机组成的伺服系统一般有三种基本控制方式,即位置控制、速度控制、力矩控制。
本系统我们采用位置控制。
PLC在自动化控制领域中,应用十分广泛。
尤其是近几年PLC 在处理速度,指令及容量、单轴控制方面得到飞速的发展,使得PLC在控制伺服电机方面也变得简单易行。
1控制系统中元件的选型1.1PLC的选型因为伺服电机的位移量与输入脉冲个数成正比,伺服电机的转速与脉冲频率成正比,所以我们需要对电机的脉冲个数和脉冲频率进行精确控制。
且由于伺服电机具有无累计误差、跟踪性能好的优点,伺服电机的控制主要采用开环数字控制系统,通常在使用时要搭配伺服驱动器进行控制,而伺服电机驱动器采用了大规模集成电路,具有高抗干扰性及快速的响应性。
在使用伺服驱动器时,往往需要较高频率的脉冲,所以就要求所使用的PLC能产生高频率脉冲。
三菱公司的FX3U晶体管输出的PLC可以进行6点同时100 kHz高速计数及3轴独立100 kHz的定位功能,并且可以通过基本指令0.065 μs、PCMIX值实现了以4.5倍的高速度,完全满足了我们控制伺服电机的要求,所以我们选用FX3U-48MT-ES-A 型PLC。
1.2伺服电机的选型在选择伺服电机和驱动器时,只需要知道电机驱动负载的转距要求及安装方式即可,我们选择额定转距为2.4 N·m,额定转速为3 000 r/min,每转为131 072 p/rev分辨率的三菱公司HF-KE73W1-S100伺服电机,与之配套使用的驱动器我们选用MR-E-70A-KH003伺服驱动器。
实现三菱P L C触摸屏控制伺服电机(总4页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除实现三菱PLC触摸屏控制伺服电机三菱PLC在plc行业中一直坚持高规格、高性能,得到很多技术人员的青睐,同时,在与伺服电机中也有很好的应用,下面以三菱公司的FX3U-48MT-ES-A作为控制元件,GT1155-QFBD-C作为操作元件直接控制三菱伺服电机的具体程序设计伺服电机又称执行电机,它是控制电机的一种。
它是一种用电脉冲信号进行控制的,并将脉冲信号转变成相应的角位移或直线位移和角速度的执行元件。
根据控制对象的不同,由伺服电机组成的伺服系统一般有三种基本控制方式,即位置控制、速度控制、力矩控制。
本系统我们采用位置控制。
PLC在自动化控制领域中,应用十分广泛。
尤其是近几年PLC在处理速度,指令及容量、单轴控制方面得到飞速的发展,使得PLC在控制伺服电机方面也变得简单易行。
1控制系统中元件的选型1.1PLC的选型因为伺服电机的位移量与输入脉冲个数成正比,伺服电机的转速与脉冲频率成正比,所以我们需要对电机的脉冲个数和脉冲频率进行精确控制。
且由于伺服电机具有无累计误差、跟踪性能好的优点,伺服电机的控制主要采用开环数字控制系统,通常在使用时要搭配伺服驱动器进行控制,而伺服电机驱动器采用了大规模集成电路,具有高抗干扰性及快速的响应性。
在使用伺服驱动器时,往往需要较高频率的脉冲,所以就要求所使用的PLC能产生高频率脉冲。
三菱公司的FX3U晶体管输出的PLC可以进行6点同时100 kHz高速计数及3轴独立100 kHz的定位功能,并且可以通过基本指令0.065 μs、PCMIX值实现了以4.5倍的高速度,完全满足了我们控制伺服电机的要求,所以我们选用FX3U-48MT-ES-A型PLC。
1.2伺服电机的选型在选择伺服电机和驱动器时,只需要知道电机驱动负载的转距要求及安装方式即可,我们选择额定转距为2.4 N·m,额定转速为3 000 r/min,每转为131 072 p/rev分辨率的三菱公司HF-KE73W1-S100伺服电机,与之配套使用的驱动器我们选用MR-E-70A-KH003伺服驱动器。
MT8000系列HMI与安川MP2300S控制器的以太网通讯设置0000做线部分参考Memobus这个PLC类型,里面就有接线的000 1)执行1、2两步进入参数设定部分:00002)MP2300S基本参数设置部分如下,执行第3步,进入通讯参数设置部分:0003)通讯参数设置部分:下图红线部分就是设定IP地址、网关、通讯参数,其中IP地址默认是192.168.1.1 可以更改,下文中提到的一个影响了通讯的拨码就是用来将IP地址恢复到192.168.1.1 ,网关255.255.255.0, LocalPort :10000(在EB8000中有设定) ,000 Node IP Address:000.000.000.000000Node Port: 00000, Connect Type :UDP , Protocol Type:Extended Memobus,Code:BIN ,Detail Setting中的参数是默认值,无需更改。
其中第4步均可采用默认值,第5步是设定更改内容,其中若CNO是01 属于自动连接,其他就需要做梯形图程序来引导通讯。
保持MP2300S IP 地址和HMI IP在同一网段。
00第4步第5步0004)注意事项1:主从站问题,需要注意的是MP2300S需要设置成主站,0000双击红圈部分就进入设置页面,将MP2300S设置成Master(设备默认的设置就是Master)。
0005)注意事项2:MP2300S设备中有个拨码开关S2-2(红色标记部分),正常通讯时在OFF 位置,如果在ON的位置,断电会重置IP地址,在ON状态下用以太网和HMI无法正常通讯。
0006)注意事项3:MP2300S 在设置完参数后,需要断电重启,这样参数设置才能有效。
0000附EB8000的参数设置图:0000000选择UDP协议 000端口号设成 10000。
基于PLC和触摸屏控制的台达伺服系统应用程序设计作者:王海东来源:《科学与财富》2018年第25期摘要:本文阐述在光伏玻璃生产线上,基于CP1H PLC和WEINVIEW触摸屏控制的台达伺服驱动倒角系统的程序设计及实现方法,并对其硬件组成、软件组态、程序结构及CP1H PLC在过程控制和运动控制中的应用实践进行分析。
关键词: CP1H PLC;触摸屏;台达伺服在安彩高科光伏玻璃磨边生产线上,倒角装置是独立于磨边机的控制系统。
其紧接短边、长边研磨工序后,主要完成玻璃的四角研磨。
倒角机靠伺服电机轴端齿轮和丝杆齿条传动完成玻璃前进方向的跟随动作,借助气缸适时动作推动匀速旋转的磨头电机完成倒角动作。
1、控制系统控制系统硬件配置主要包括:CP1H-XA40DT-D PLC,WEINVIEW触摸屏--MT6070IH,台达ASD-A-0721-B伺服驱动器,ECMA-C30807PS伺服电机。
CP1H PLC通过RS232接口实现和触摸屏的串行通讯,并通过高速计数/脉冲输出指令实现对伺服驱动器的定位和过程控制。
倒角机系统结构框图如下:2、组态设计2.1、组态软件倒角机采用WEINVIEW触摸屏,输入电源电压24VDC,设置三组异步式串行通讯端口:COM1(RS232/RS-485 2W/4W), COM2(RS-232), COM3(RS232/RS-485 2W),可同时连接3个不同协议的设备通讯,支持编程组态软件EB8000 V2.0.0及更高版本。
装有组态软件的PC机与其COM端连接,可实现组态画面的上传和下载,PLC通过COM接口与其连接,可实现PLC和触摸屏的串行通讯。
2.2、通讯设置WEINVIEW触摸屏使用EB8000软件进行画面组态,其设计步骤包括:画面编辑、编译、模拟与下载。
编辑画面保存为MTP工程文件,使用EB8000的编译功能,将MTP文件编译成可下载到触摸屏的XOB文件。
模拟分为离线和在线模拟,在线模拟前需正确设定PLC的通讯参数,选择EB8000软件的“编辑”菜单,选择“系统参数设置”,在“设备列表”里分别设定“本机HMI”和“本机PLC”主机类型,预设站点号,通讯接口类型,并在通讯参数里进行COM口、波特率、PLC地址、数据位、通讯延时等设置。
PLC实习报告题目:触摸屏、PLC、变频器控制电机正反转学院:电气信息工程学院班级:姓名:学号:指导教师:日期:2012.12.10至2012.12.14目录实习名称 (2)实习内容 (3)实习目的 (3)一、PLC的硬件组态 (3)二、PLC程序设计 (6)三、触摸屏程序设计 (9)四、变频器参数设置 (14)五、系统调试及运行 (14)六、实习心得 (14)参考文献 (15)实习名称触摸屏、PLC、变频器控制电机正反转实习内容自行设计触摸屏、PLC 控制程序,采用现场总线方式控制变频器实现电机正反转。
实习目的1. 熟练掌握PLC硬件组态方法;2. 掌握变频器的基本使用方法;3. 会编写简单的PLC程序;4. 掌握触摸屏的基本应用;一、PLC的硬件组态1、创建一个新项目2、插入西门子PLC300站点3、硬件组态按实际情况组态PLC模块在组态CPU时,为PLC新建现场总线连接,采用现场总线的默认设置即可,如下图所示:组态完毕之后,在现场总线上插入MM420变频器,选中现场总线,右击,选择插入对象,选择SIMOVERT,按下面步骤操作,插入MM420变频器:设置变频器地址为“12”,如下图:插入变频器之后,在右侧选择PROFIBUS DP—SIMOVERT,如下图所示,选择PPO3,并将I/Q起始地址均修改为100:二、PLC程序设计1. 建立符号表并保存,如下图:2. 程序如下图:3.将OB1 中程序保存后关闭。
将 SIMATIC300 站点下载到PLC 中。
三、触摸屏程序设计1.插入HMI站选择实验室对应触摸屏型号:2、添加新画面分别命名为“初始画面”和“显示转速”单击左侧变量,新建变量表:双击空白行,新建变量在变量表中单击符号,选择项目下的“LI2”中的“符号表”,并选择“频率值”变量采用上面的方式创建如下变量表:添加文本域选择文本域后在画面中单击左键即可将文本域放置在画面中修改文本域的内容,选中文本域后单击右键选择“属性”:在常规选项中输入文本内容“PLC通过现场总线控制变频器”选择属性,在属性中进行如下设置:在工具栏右侧选择画圆工具在画面中点击左键画圆设置圆实验所需要的属性、可见性设置完成后如下图:用同样的方法再创建两个圆,分别设置为黄色、绿色,然后将三个圆重合,绿色的圆在最上面,黄色居中,红色在最下面:在右侧选择按钮工具在画面中创建按钮,并且设置按钮的相应属性、事件建立变量连接,连接为“正转”变量如下图:用同样的方法在创建一个停止按钮,将变量连接为“停止”,“反转”:用同样的方法创建“显示转速”按钮,并进行如下设置:“显示转速”画面的设计:首先选中“显示转速”画面,将画面切换到显示转速面板:在右侧工具中选择“棒图”将棒图添加到画面上选中棒图,对棒图设置相应的属性选择棒图的变量为“频率值”,最大值为50:选择右侧I/O域在显示转速画面中创建I/O域设置I/O域的属性值对I/O进行如下设置:在工具中的增强对象中选择“量表”在显示转速画面中创建量表,并对量表进行设置:在量表下创建I/O域:按照在初始画面创建“显示转速”按钮的方法,在画面中创建“初始画面”。
触摸屏与PLC组成的伺服电机控制系统分析随着人们消费水平的不断提升,对于产品的质量和创新等要求也越来越高,这给生产企业带来很大的困难,要生產出高规格和高质量产品,仅仅依靠传统的人工是很难实现的。
新时期,生产企业只有不断提升技术水平,强化先进设备应用,打造智能自动控制系统,才能满足这种需要,提升生产效率和质量。
将触摸屏与PLC组成的伺服电机控制系统应用到生产领域中,能够不断提升生产质量,优化生产流程,促进企业生产发展的有效开展,满足消费者的各种需要。
对此,企业需要进一步探究触摸屏与PLC组成的伺服电机控制系统的特点和功能,把握其工作原理,才能更好地应用该控制系统并服务生产。
1 系统构成在触摸屏与PLC组成的伺服电机控制系统中,触摸屏、可编程控制器、伺服电机、驱动器等是主要的组成构件,该控制系统中使用的驱动器和伺服电机主要是三洋产的Q系列产品,该系列产品的伺服电机性能相对优越,作为控制系统的主要执行单元,其发挥的主要功能是实现系统的动力输送,能够进行位置、动态、速度、输出信号、报警记录、电子齿轮等功能实现。
控制系统的PLC采用的是日本富士公司生产的Micrexsx spb系列产品,PLC是控制系统的核心控制单元。
而触摸屏主要选用的也是富士公司生产的设备,触摸屏的使用主要是发挥显示功能,对于控制系统的工作状态等信息进行直观显示,显示屏上还装有开关按钮,能够进行输入指令的操作,实施PLC的数据交换功能,触摸屏是控制系统实现人机交互的主要渠道,能够对于系统的运行实施动态监控和显示,能够方便工作人员进行相关驱动器参数的设定,实现输入和设置功能。
2 控制系统功能触摸屏与PLC组成的伺服电机控制系统的主要功能是通过对伺服电机的控制,发挥控制目标,按照控制模式的差异,还可以将对电机的控制划分成位置控制模式,内置速度控制模式、速度控制模式以及手动控制模式。
借助触摸屏的现实设备,还可以试试对控制模式进行自主选择和切换,实现有效的人机交互目标。
触摸屏与 PLC组成的伺服电机控制系统分析摘要:本文提出了一种基于触摸屏与PLC组合的伺服电机控制系统的设计方案,在简单说明该系统总体设计思路以及控制功能实现思路的基础上,以PLC控制伺服电机的过程设计与硬件实现、伺服进给单元的设置、伺服进给单元电机以及伺服驱动装置的设置为切入点,阐述该伺服电机控制系统的具体设计方案。
关键词:触摸屏;PLC控制;伺服电机控制系统引言:通过使用PLC进行对伺服电机的控制,能够促使整个控制过程转入自动化状态,形成智能自动控制系统,以此保证伺服电机可以在需要的情况下自动转入运行状态。
在此基础上,结合对触摸屏的应用,能够实现对人机交互功能的进一步优化,并实现对系统反应时延性的有效控制。
一、基于触摸屏与PLC组合的伺服电机控制系统总体设计思路分析(一)系统结构的总体设计该触摸屏触摸屏与PLC组合的伺服电机控制系统所包含的硬件结构主要有触摸屏、PLC、伺服控制器、伺服电机,系统构成如图1所示。
其中,本系统中应用的伺服电机以及伺服控制器均选用性能更为优越的产品,设定系统各项控制指令的主要执行单元为伺服电机、伺服控制器,且其还承担着输送动力、发送多种信号、报警并记录等任务[1]。
本控制系统的核心元件为PLC,必须要对着重落实对其能的维护。
在选择触摸屏的过程中,要求着重关注灵敏性,即是否可以根据相关人员的触按操作迅速做出反应,保证人机交互的质量、降低操作延时性。
PLC伺服控制器伺服电机图1系统构成图(二)控制功能的实现思路在使用PLC对伺服电机展开控制的过程中,常用的方法主要三种,即转矩控制、速度模式以及位置控制,具体如下:(1)转矩控制,即依托PLC输出模拟量完成对电机轴对外输出转矩大小的设定。
例如,在10V对应 5N.m的情况下,当PLC的输出模拟量设定为5V时,则伺服电机轴的输出则为2.5N.m[2]。
(2)速度模式,即利用(PLC)输入模拟量(使伺服驱动器)调整脉冲频率达到控制伺服电机实际转动速度的效果。
触摸屏在伺服电机控制系统中的应用摘要:国家的现代化程度与工业生产能力可以通过工程电气自动化的应用水平展示出来。
现如今,我国很多工业生产可以通过应用计算机技术实现电气自动化生产及控制。
而工程电气自动化生产与控制的重要技术是PLC技术,PLC是可编程逻辑控制器的简称,而在实际应用中不需要人为监管与操作,并且其逻辑灵活实用不易出错,在现代化工业生产中得到广泛应用。
关键词:触摸屏;伺服电机;控制系统引言传统电气自动化控制技术下的设备难以满足需求。
传统继电器控制技术下的设备存在诸多例如可靠性不足、工作效能低等问题,这样的特点制约了未来自动工业化的发展。
PLC技术作为一种可编程控制系统的技术,运用PLC技术的设备具有操作方便、应用广泛的适用性特点。
并且依托于现代的信息技术,处理和运算工业中产生的数据有很高的效率和精准度,可以有效地结合物联网系统。
1PLC技术的基本概述研发人员在继电器技术的基础上开发出PLC技术,PLC技术主要由三部分构成,分别是输入采样、用户程序落实以及输出刷新。
首先,输入采样是研究和分析相关数据信息并进行读取内容,利用传统储备信息的方法将相关数据信息进行保存。
其次,用户程序落实是将用户输入的数据按照由上而下进行的科学扫描,方便于运算用户输入的梯形数据,以此确保数据的合理性与可靠性,从而将数据运算结果在固定的文件中能够有效地展示出来。
最后,输出刷新是将数据信息在固定区域内完成数据转化并进行向外传送的过程。
2触摸屏在伺服电机控制系统中的应用优势传统继电器具备许多缺点,而正是PLC技术拥有传统不具备的逻辑控制,从而具有许多良好的特点和优势。
因此有许多实际应用的模型和案例,可以采用PLC技术应用在电气自动化设备中。
(1)具备抗干扰能力,可靠性能强。
电气自动化设备的可靠性能,影响着工业产品的生产质量的好坏以及生产效率的高低。
PLC技术的实质是大规模的集成电路技术,把控对工厂大规模生产制造的监管的数据信息。
伺服控制器的编程与逻辑控制伺服控制器是一种广泛应用于工业自动化领域的设备,它通过编程与逻辑控制实现对机械设备的精确和可靠控制。
本文将就伺服控制器的编程和逻辑控制进行探讨,以帮助读者更好地了解和应用这一技术。
伺服控制器的编程工作是非常关键的,它决定了控制器如何与机械设备进行交互和控制。
通常,伺服控制器的编程是通过专门的编程语言或者软件来实现的,如Ladder Diagram(梯形图)或结构化文本语言(Structured Text)。
在伺服控制器的编程过程中,需要首先进行系统参数的设置。
这包括设定机械设备的运行速度、加速度、减速度等参数,以及设定控制器的保护参数,例如过载保护、过温保护等。
这些参数的设置需要根据具体的机械设备和控制要求进行调整和优化。
其次,在伺服控制器的编程中,需要根据机械设备的运动要求,编写相应的运动控制程序。
这些程序通常包括位置控制、速度控制和力控制等,可以通过设定目标位置、目标速度和目标力来实现对机械设备的精确控制。
需要注意的是,在编写运动控制程序时,需要考虑到设备的动力学特性,并采取相应的措施,如闭环控制、补偿控制等,以提高系统的稳定性和精度。
此外,伺服控制器的编程还需要考虑到系统的异常处理和自诊断功能。
在运行过程中,机械设备可能会出现故障或异常情况,如传感器故障、通信中断等,这时需要编写相应的逻辑程序来进行故障诊断和处理。
可以通过监测故障信号、记录异常事件、生成报警信息等方式,及时响应并采取措施,以保证系统的安全和可靠运行。
另外,在伺服控制器的编程中,还需要考虑到与其他系统的数据交互和通信。
伺服控制器通常与上位机、PLC、传感器等设备进行通信,实现数据的传输和共享。
为了实现这一功能,需要编写相应的通信协议和数据处理程序,以确保数据的可靠传输和正确解析。
除了编程工作,逻辑控制也是伺服控制器的重要功能之一。
逻辑控制是指通过逻辑关系来控制机械设备的运行状态和动作。
例如,通过编写逻辑程序来实现自动开关机、定时启停、条件触发等功能。
基于两台三伺服电机及其驱动器,用PLC和触摸屏控制一、任务功能1、手动模式:用触摸屏单独控制各台伺胸电机的正转、反辫、停止:2、自动模式:按下触摸屏的“自动启动安钮,两台三相伺服电机按以下步骤运行(1)伺服电机1正转3秒:(2)伺服电机1反转3秒:(3)伺服电机1停止1秒:(4)伺服电机2正转3秒:(5)伺服电机2反转3秒:(6)伺服电机2停止1秒:(7)重复以上过程3次。
3、不管哪种模式,用触摸屏可以设置各台伺服电机的转速:4、触摸屏可以显示电机累计运行时间及设置电机保养提醒时间:(1)显示伺服电机1累计运行时间,设置电机I保养提醒时间(以秒为单位) ;(2)显示伺服电机2累计运行时间,设置电机2保养提醒时间(以秒为单位〉;(3)当电机1或电机2的保养时间到达后,Y5或Y6以1秒周期闪烁:5、按下触摸屏或PLC:外部的“急停”按钮后,不论伺服电机处于哪种状态或模式都必须停止:二、任务的实施设备①伺服电机及驱动器MR-JE-20A 2台;②PLC(FX3U)1台;③昆仑通态触摸屏1台;④电脑等三、任务的实施步骤1、设置伺服驱动器的参数隐藏参数PH17改为5012,断电再上电。
2、接线图3、根据任务功能,分配I/O点4、下载程序到PLC,参考程序5、制作触摸屏画面(1)打开MCGSE嵌入版组态软件,新建工程,选择相对应的触摸屏类型按确定;(2)创建新工程后进行组态设备,双击添加通用串口父设备后选择FX系列编程口,组态完成后关闭当前画面,进入下一步;(3)新建一个用户窗口,双击窗口,进入画面编辑;(4)点击工具箱,添加所需要的按钮和输入框等(5)首先添加输入框双击打开,选择PLC对应的数据对象,通道类型与通道地址要和PLC 一致,否则无法读取数据,同样方法分添加设置电机保养时间和电机转速设置;(6)点击工具箱添加按钮双击打开基本属性可以设置想要的文本,点击操作属性勾选数据对象,选择按1松0点“?”进去选择通道类型和通道地址,其他按钮操作方法也一样;(7)工具箱添加指示灯双击打开选择数据对象,选择相对应的输出。
基于plc的触摸屏总结基于plc的触摸屏专业技能总结专业:电子信息工程学号:0414110111姓名:王国发这学期我们进行了有关PLC的科研技能训练,科研技能训练是大学中必不可少的一个环节,因为科研技能使培养学生的科研能力、创新意识和创新能力,通过科研技能训练,使学生掌握科学研究的过程和方法,能够初步掌握进行科学研究、科技论文写作的方法步骤,全面掌握进行科技活动必备的素质要求,激发学生的专业热情和学习兴趣,为学生撰写毕业论文、进行毕业设计奠定基础,并能培养学生的科研组织能力和专业知识综合运用能力,提高其与专业有关的综合素质,并且能提高创新能力!一、触摸屏的现状与应用PLC(Programmable Logical Controller)通常称为可编程逻辑控制器,是一种以微处理器为基础,综合了现代计算机技术、自动控制技术和通信技术发展起来的一种通用的工业自动控制装置,由于它拥有体积小、功能强、程序设计简单、维护方便等优点,特别是它适应恶劣工业环境的能力和它的高可靠性,使它的应用越来越广泛,已经被称为现代工业的三大支柱(即PLC、机器人和CAD/CAM)之一。
PLC基于电子计算机,但并不等同于计算机。
普通计算机进行入出信息交换时,大多只考虑信息本身,信息入出的物理过程一般不考虑的。
而PLC则要考虑信息入出的可靠性、实时性、以及信息的实际使用。
特别要考虑怎样适应于工业环境,如便于安装便于门内外感应采集信号,便于维修和抗干扰等问题,入出信息变换及可靠地物理实现,可以说是PLC实现控制的两个基本点。
PLC可以通过他的外设或通信接口与外界交换信息。
其功能要比继电器控制装置多得多、强得多。
PLC有丰富的指令系统,有各种各样的I/O接口、通信接口,有大容量的内存,有可靠的自身监控系统,因而具有以下基本功能:1逻辑处理功能;2数据运算功能;3准确定时功能;4高速计数功能;5中断处理(可以实现各种内外中断)功能;6程序与数据存储功能;7联网通信功能;8自检测、自诊断功能。
课程设计(实习)报告实验项目:触摸屏、PLC、变频器控制电机正反转学院:电气信息工程学院专业:电气工程及其自动化班级学号:电气09-3班16 号姓名:田振指导教师:弭洪涛2012年05月28日目录实习名称--------------------------------------------2 实习内容--------------------------------------------2 实习要求--------------------------------------------2 实习步骤--------------------------------------------2一.硬件组态---------------------------------------2二.PLC程序设计------------------------------------3三.触摸屏程序设计----------------------------------7四.变频器参数设置---------------------------------14五.触摸屏操作-------------------------------------14 参考文献--------------------------------------------16 调试过程--------------------------------------------16 实习心得--------------------------------------------17实习名称:触摸屏、PLC、变频器控制电机正反转实习内容:自行设计触摸屏、PLC控制程序,采用现场总线方式控制变频器实现电机正反转。
实习要求:1.熟练掌握PLC硬件组态方法2.掌握变频器的基本使用方法3.会编写简单的PLC程序4.掌握触摸屏的基本应用实习步骤:一. PLC的硬件组态1创建一个新项目“PLC实习”2.硬件组态在组态CPU时,为PLC新建现场总线连接,采用现场总线的默认设置即可。
庸博伺服和维控触摸屏的RS485通讯实现一、485通信接口庸博伺服驱动器具有 RS-485 串行通讯功能。
CN3采用双 RJ45 接口,方便多台驱动器的连接。
(需要设置参数FN05和FN07)线号端子记号功能说明1 RS485-A+ RS485数据传输差动+端2 RS485-B- RS485数据传输差动-端4 GND GND庸博伺服器支持 MODBUS RTU 格式;暂不支持 MODBUS ASCII 格式;支持所有参数寄存器的读和部分具有写属性的寄存器写操作。
二、通讯地址参数组通讯地址Pn-0xx 00xxHP n-1xx 01xxHP n-2xx 02xxHP n-3xx 03xxHP n-4xx 04xxHP n-5xx 05xxHF n-xx 06xxH“监控参数”07xxHModbus驱动器都必须预先在参数Fn-05上设定其伺服驱动器站号,上位控制器根据站号对个别的伺服驱动器实施控制。
同时每一台驱动器都必须在参数Fn-07设置通讯协议。
三、庸博伺服和维控触摸屏的RS485通讯实现(以FN05设6101,FN07设0061为例)1.庸博伺服参数设置FN05:6101(伺服站号为1)FN07:0061(数据位8、校验位NONE 、停止位2、MODBUS RTU 模式) 2.打开维控触摸屏软件(Levi Studio),新建工程 3. 点击设置→通讯口配置4.如下图所示,右下角为所选触摸屏型号的接线图,本图RS485管脚定义为1脚为RS485+,6脚为RS485-,5脚为GND ,与伺服硬件接线(庸博伺服为1脚RS485+,2脚为RS485-,4脚为GND )一一对应即可。
Fn-05通讯参数【0-1】通讯站号1~FF Fn-07 【0】通讯速度 0 :4.8Kbps 1 :9.6Kbps 2 :19.2Kbps 3 :38.4Kbps 【1】通讯协议: 6:(8、N 、2)MODBUS RTU 7:(8、E 、1)MODBUS RTU 8:(8、O 、1)MODBUS RTU5.由于伺服站号设为1,则设备站号改为16.点击更改连接,将设备改为ModBus RTU Slave(All Fuction)7. 点击串口参数设置的设置按钮,将连接方式改为RS485,波特率改为9600,停止位为2,数据位为8,校验位为EVEN,点击确定。
伺服驱动器APCM模式编程总结经过一个多月的努力,终于将触摸屏控制伺服驱动器工作于APCM模式的程序做好了。
这段时间,在赵老师的指导下,我不断查找资料、上机实验、询问客服等方法,终于将触摸屏控制伺服驱动器工作于APCM模式的不同控制方式下的几个程序做了出来。
在这个过程中,我收获了很多的知识,不仅是关于触摸屏与伺服电机的专业知识,更多的是在程序设计中怎样与实践结合,怎样从使用方便的角度去设计程序。
我编写的程序包括APCM模式的单次定位方式程序、APCM模式的连续定位方式、APCM模式的连续速度模式和两轴联动的APCM单次绝对位置定位模式,以及内部速度通信调速模式。
在这里,我将各个程序的编写方法及宏指令总结如下。
首先说明编写程序及调试所用的主要设备:两台珠海运控PSDA0633A6伺服驱动器及两台BPA6系列60型C60-30伺服电机、一台威纶通MT6070iH触摸屏。
一、APCM模式的连续定位方式使用APCM模式,需先将51号参数设为5,然后断电再上电,该模式才会有效。
伺服驱动器工作在APCM模式的单次定位方式,需在单次定位控制方式页面打开时,设定65号参数为11850(APCM控制字为10111110001010)。
屏幕上需设定速度参数设定、伺服ON、伺服OFF、启动、停止、故障处理等6个主要控制键,分别用于切换到速度设定窗口、打开伺服、关闭伺服、启动电机、停止电机和故障处理等。
在屏幕上还要设置一个趋势图元件,来形象显示电机的实时速度,同时趋势图元件还可以查看过去某个时刻的速度、观察速度曲线等功能。
我在该定位方式的控制控制页面上还添加了伺服准备好、伺服ON、正转、反转、驱动器报警等运行状态显示元件来实时显示伺服驱动器的运行状态。
为了根据需要实现电机的正反转,还用到了两个置位开关,位地址都为0x52,但是在这里我将这两个置位开关做成透明的,然后在上面添加两个位地址也为0x52的位状态指示灯,这样在点击正转或反转的按键后,相应的位状态指示灯就会亮,表明正转(反转)设定有效。
同时在控制页面上还添加了一个保存参数的按键,用来将设定的参数保存在伺服驱动器里。
控制页面上所用的元件的地址都是根据伺服驱动器手册里的Modbus协议分配的地址来设定的。
在做这个连续定位方式的程序过程中,曾经遇到两个问题:第一个问题是,在设定好电机的加减速时间后(运行速度设定为600转),电机从0转开始启动,加速到600转,然后按停止键,电机瞬时停止,可以在趋势图上观察到启动的时候速度曲线是斜线,停止的时候速度曲线是一条竖直线,这说明启动的时候电机按设定的加减速时间启动了,但是停止的时候没按设定的加减速时间停止。
如果将电机从0转加速到3000转,可以在趋势图上观察到电机按设定的加减速时间启动了,按下停止键,电机会瞬时停止转动,同时会发生很大的噪声,这时在趋势图上观察到停止的时候速度曲线是一条竖直线。
反复分析了这种情况,最后找到了出现这种情况的原因是在电机停止的宏指令里,没有在减速指令后加上一条延时指令来给电机时间减速,而是直接执行停止指令,这样电机刚接收到减速指令,马上就又接收到停止指令,电机来不及减速,转速直接从3000转跌到0转,这样就产生了很大的震动和噪声。
后来我在电机停止的宏指令里添加了电机从设定的运行速度减速到启动速度的延时时间,这个问题才得以解决。
第二个问题是,我在调试的过程中,发现加减速时间的设定值超过8100mm时,不论设定的加减速时间是多少,电机都在两秒钟左右的时间内加速到运行速度。
特别是把加减速时间设定为8200mm时,按启动键,电机不启动,同时还会发出转速瞬时下降时的那种噪声。
起初我以为是个别驱动器的问题,但是换了个驱动器之后发现问题依然存在。
这个情况要等问过他们厂家的在线客服之后才明白是怎么回事。
二、APCM模式的连续速度方式APCM模式的连续速度方式程序的编写基本上与APCM模式的连续定位方式一样,但是在控制页面打开的时候要把65号参数设定为3635(APCM控制字为0000111001001000)。
控制页面上同样需要设定速度参数设定、伺服ON、伺服OFF、启动、停止、故障处理等6个主要控制按键。
在该控制页面上也需要添加上正反转按键、趋势图、状态显示指示灯、保存参数等元件。
需要指出的一点是,这两种控制方式如果用于调速的话,不是很方便,因为速度参数的设定位置只有一个地址,且在电机的运行过程中,设定电机向相反方向运转,该指令不会马上执行,必需在电机停止后再启动,驱动器才会执行反转指令。
三、APCM模式的单次定位方式APCM模式的单次定位方式适合于进行精确的位置控制。
伺服驱动器工作在APCM模式的单次定位方式,需在单次定位控制方式页面打开时,设定65号参数为12170(APCM控制字为0010111110001010)。
单次定位方式的控制按键跟连续定位方式的控制按键相似,也要设定速度参数设定、伺服ON、伺服OFF、启动、停止、故障处理、保存参数等按键和位状态显示指示灯,不同的是这这段程序中,我选择的是绝对位置控制,这样,如果输入的脉冲总数是正值,则电机正转,输入脉冲式负值,则电机反转,同时还可以进行原点校正、回归原点、点动控制等功能(点动控制只在该控制方式里有效,在连续控制方式里无效)。
在单次定位方式里,可以准确设定电机运行的脉冲数目,这样电机就能够准确的运行一段距离。
该方式适合于用通信方式进行精确的距离控制。
四、内部速度调速使用内部速度调速模式,需先将51号参数设为0,然后断电再上电,该模式才会有效。
内部速度模式控制页面的参数设置也跟上面几种模式一样,需要设定速度参数按键、伺服ON、伺服OFF、停止、故障处理、正转、反转、保存参数、趋势图以及状态显示等元件。
与上面的模式不同的是,内部速度模式可以设定八级速度,而且可以在这八及速度中任意切换,点正转(反转)按键后,电机会马上按设定的加减速时间减速然后反转(正转)。
这种模式比APCM模式更适合用于调速。
五、两轴联动的APCM单次绝对位置定位模式这个程序可以同时控制两个电机带动一个工作台分别向X、Y方向移动。
在这个程序的控制页面上,除了上面所叙述的参数设定、伺服ON、伺服OFF、启动、停止和故障处理等参数外,还需要设定一个坐标系。
坐标系里,X轴和Y轴的最大值都是5mm,坐标系的四个方向设定四个上下左右的箭头,点一下箭头,电机就向相应的方向运行0.01mm(1丝),同时可以在坐标系里用鼠标进行目标位置的选取,也可以在专门的数值输入框里输入目标坐标。
设定好目标坐标后,会有两条黄色的水平和数值的虚线相交叉,交叉点即为选取的目标点。
在该控制页面上,我还进行了电机速度的实时显示、电机已运行距离的实时显示,目标位置的设定和目标位置的径向距离和电机当前位置相对于原点的径向距离的显示。
点击电机速度显示框、电机已运行距离显示框或目标位置设定方框时都有一个相对应的放大的窗口弹出来,这样可以更加清晰地观察和设定参数。
在这个程序里,可以进行配方数据的上传和下载。
在坐标系下,我添加了一个直径为5毫米、圆心在原点的圆,这样在目标位置选取的时候,可以直观里看到选取的目标位置的径向距离有没有超过最大值5mm,也可以观察目标位置径向距离显示元件,这样更精确一些。
同时,在控制页面的下方,我还添加了X轴、Y轴脉冲总数的显示元件,显示X轴、Y轴方向要执行的脉冲总数,还在控制页面下方添加了两个数据显示元件(地址类型为配方地址),来实时显示并记录电机当前位置,来显示当前电机的位置,并实时记载电机当前位置,这样可以在断电或者伺服OFF时,保存当前电机位置,不至于在重新上电或伺服ON时,电机上次运行的位置丢失。
在这几种模式程序的编写中,有几点经验是相同的:1、在这几种模式的程序的开始,都使用了快选窗口,在快选窗口里可以进行登录、注销、重新启动、控制画面切换等操作,这种方式也是实际应用中必不可少的,因为它方便、快捷。
2、在这几种模式的程序里,除了可在各种模式的控制窗口里正常进入报警处理窗口外,还另外添加了一个报警处理弹出窗口,同时在公共窗口添加了一个与报警弹出窗口等大小的直接窗口,并设定弹出窗口为报警处理窗口,这样不管当前页面为哪个页面,如果有警情,报警处理弹出窗口都可以自动弹出来,方便操作人员及时进行报警处理。
3、因为保存参数按键不常使用,所以我在保存参数的安全选项里设定最少按键时间为2秒钟,这样可以避免误触保存参数按键,造成原来保存的参数丢失。
同时还设定了该按键在伺服OFF时有效,伺服ON时无效,这样可以避免在伺服驱动器上电时电机自动运行。
4、在选择位状态指示灯时,要用不同状态颜色反差比较大的指示灯,这样便于识别。
此外,还需要指出的一点是,A6系列的驱动器在进行485联机通信时,不可以使用2号机器编号,因为据客服人员讲,驱动器软件里存在漏洞,不能识别2号机器编号。
所以在联机通信时,要使用1号和2号以后的机器编号。
同时还需要注意的是,在用485方式进行联机通信的时候,要采用手拉手的方式,就是触摸屏连一个伺服驱动器,这个驱动器再连下一个,这样一个连一个,不能出现分支的情况。
因为前面几种模式程序的编写的主要目的是练习,是为编写两轴联动的APCM单次绝对位置定位模式这个程序打基础的,所以在这里只附带两轴联动的APCM单次绝对位置定位模式程序宏指令以及对应语句的解释。
/************************初始化指令*****************************/ macro_command main()short a,bint pulsex,pulseya=3714 //APCM控制字:0000111010000010 b=127 //X轴5mm距离对应的屏上坐标长度SetData(b, "Local HMI", LW, 5, 1) //将X轴移动的定位虚线移动到原点SetData(b, "Local HMI", LW, 8, 1) //将Y轴移动的定位虚线移动到原点SetData(a, "MODBUS RTU", 4x, 1#102, 1) //将APCM控制字写进1号伺服65号参数SetData(a, "MODBUS RTU", 4x, 3#102, 1) //将APCM控制字写进2号伺服65号参数SetData(b, "Local HMI", LW, 13, 1)SetData(b, "Local HMI", LW, 14, 1) //将显示电机轴当前位置的元件移到原点GetData(pulsex, "Local HMI", RW, 20, 1)GetData(pulsey, "Local HMI", RW, 22, 1) //得到关机前电机X Y轴向已运行脉冲数SetData(pulsex, "MODBUS RTU", 4x, 1#145, 1) //将关机前电机X Y轴向已运行冲SetData(pulsey, "MODBUS RTU", 4x, 3#145, 1) //数写入已运行脉冲数0x90号的参end macro_command //数里/************************X Y轴停止*****************************/ macro_command main()bool a,ba=trueb=falseSetData(a, "MODBUS RTU", 0x, 1#3, 1)SetData(b, "MODBUS RTU", 0x, 1#3, 1) //X轴脉冲减速信号SetData(a, "MODBUS RTU", 0x, 3#3, 1)SetData(b, "MODBUS RTU", 0x, 3#3, 1) //Y轴脉冲减速信号SetData(a, "MODBUS RTU", 0x, 1#4, 1)SetData(b, "MODBUS RTU", 0x, 1#4, 1) //X轴脉冲到位信号SetData(a, "MODBUS RTU", 0x, 3#4, 1)SetData(b, "MODBUS RTU", 0x, 3#4, 1) //Y轴脉冲到位信号end macro_command/*************读取目标距离写入电机并记录本次电机轴位置*************/ macro_command main()float distance,distance1,distancex,distancey,x,y,c,d,g,h,j,k,l,mint pulsex,pulsey,pulsexx,pulseyy //pulsexx pulseyy:上次记录的已运行脉冲数short a,b,beishu,speedx,speedy,speedbool OFFspeed=40OFF=falseGetData(distancex, "Local HMI", LW, 0, 1)GetData(distancey, "Local HMI", LW, 2, 1) //读取目标距离元件里设定的X Y轴坐标distance1=distancex*distancex+distancey*distanceySQRT(distance1, distance)SetData(distance, "Local HMI", LW, 15, 1) //计算目标位置的径向距离c=distancex/5*127d=distancey/5*127 //计算当前设定目标位置在新坐标系上相对原点的位置x=c+438y=244-d //目标位置在屏幕原始坐标系上的坐标a=x-311b=y-117 //目标位置相对相对新坐标系左上角在X Y轴的变化距离SetData(a, "Local HMI", LW, 5, 1)SetData(b, "Local HMI", LW, 8, 1) //将目标位置的变化距离传给移动图形虚线pulsex=distancex*80000pulsey=distancey*80000 //将目标位置的坐标由毫米转化为脉冲数SetData(pulsex, "MODBUS RTU", 4x, 1#41, 1) //将需要运行的脉冲总数写入SetData(pulsey, "MODBUS RTU", 4x, 3#41, 1) //相应伺服SetData(OFF, "Local HMI", LB, 1, 1) //将触发该宏指令的位地址置1 GetData(pulsexx, "Local HMI", RW, 20, 1) //读取上次运行结束时X Y轴GetData(pulseyy, "Local HMI", RW, 22, 1) //已运行脉冲数j=pulsexx*1.0/80000k=pulseyy*1.0/80000 //计算出上次电机轴的位置(单位:mm) l=distancex-jm=distancey-k //计算两次目标位置之间的距离if l<=0 theng=(-1)*lelseg=lend if //计算X轴方向两次目标之间距离的绝对值if m<=0 thenh=(-1)*melseh=mend if //计算Y轴方向两次目标之间距离的绝对值if g==0 or h==0 thenSetData(speed, "MODBUS RTU", 4x, 1#44, 1) //如果有一个方向的目标位置相对上SetData(speed, "MODBUS RTU", 4x, 3#44, 1) //次没有变化,则将另一方向上的电机else if g>h then //速度设为40rpmbeishu=40/g //如果X轴向目标距离变化距离大于Y轴目标距离变化距离speedx=g*beishu //求出40除以最大变化距离得出的整数值speedy=h*beishu //将该整数值乘以每个轴向目标距离变化距离,取结果//的整数值作为该轴向的电机运行速度值SetData(speedx, "MODBUS RTU", 4x, 1#44, 1) //将求出的各轴电机运行速度值SetData(speedy, "MODBUS RTU", 4x, 3#44, 1)// 赋给相应伺服2B号参数else if g<=h then //如果Y轴向目标距离变化距离大于或等于X轴目标距离//变化距离beishu=40/h //求出40除以最大变化距离得出的整数值speedx=g*beishu //将该整数值乘以每个轴向目标距离变化距离,取结果speedy=h*beishu //的整数值作为该轴向的电机运行速度值SetData(speedx, "MODBUS RTU", 4x, 1#44, 1) //将求出的各轴电机运行速度值SetData(speedy, "MODBUS RTU", 4x, 3#44, 1) // 赋给相应伺服2B号参数end ifend macro_command/****************读取触碰点坐标并将各项参数写入伺服****************/ macro_command main()short x,y,a,b,e,f,speed,beishu,speedx,speedyfloat c,d,g,h,j,k,l,m,distance,distance1int pulsex,pulsey,pulsexx,pulseyyspeed=40GetData(x, "Local HMI", LW, 9042, 1)GetData(y, "Local HMI", LW, 9043, 1) //读取本次光标所点位置坐标e=x-311f=y-117 //计算出光标所点位置相对新坐标系左上角的变化距离SetData(e, "Local HMI", LW, 5, 1)SetData(f, "Local HMI", LW, 8, 1) //将光标位置变化传给移动图形虚线a=x-438b=244-yc=(a*1.0)/127*5 //计算出目标位置在新坐标系X轴上的坐标d=(b*1.0)/127*5 //计算出目标位置在新坐标系Y轴上的坐标pulsex=c*80000pulsey=d*80000 //求出各轴相对应的脉冲数pulsex=pulsex-pulsex%800pulsey=pulsey-pulsey%800 //修正发送的脉冲为800的倍数,因为驱动器接受//800个脉冲丝杠运行1丝(0.01mm)c=pulsex*1.0/80000d=pulsey*1.0/80000 //计算目标位置在新坐标系上的X Y坐标SetData(c, "Local HMI", LW, 0, 1)SetData(d, "Local HMI", LW, 2, 1) //准确显示目标位置在新坐标系上的X Y坐标distance1=c*c+d*dSQRT(distance1, distance)SetData(distance, "Local HMI", LW, 15, 1) //计算目标位置的径向距离SetData(pulsex, "MODBUS RTU", 4x, 1#41, 1)SetData(pulsey, "MODBUS RTU", 4x, 3#41, 1) //将各轴上脉冲数写入相应伺服GetData(pulsexx, "Local HMI", RW, 20, 1)GetData(pulseyy, "Local HMI", RW, 22, 1) //读取上次各轴已运行脉冲数j=pulsexx*1.0/80000k=pulseyy*1.0/80000 //计算上次电机位置l=c-jm=d-k //计算两次目标位置之间的距离if l<=0 then //本段程序注释与上个计算速度的程序的注释一样,在次就不注释g=(-1)*lelseg=lend ifif m<=0 thenh=(-1)*melseh=mend ifif g==0 or h==0 thenSetData(speed, "MODBUS RTU", 4x, 1#44, 1)SetData(speed, "MODBUS RTU", 4x, 3#44, 1)else if g>h thenbeishu=40/gspeedx=g*beishuspeedy=h*beishuSetData(speedx, "MODBUS RTU", 4x, 1#44, 1)SetData(speedy, "MODBUS RTU", 4x, 3#44, 1)else if g<=h thenbeishu=40/hspeedx=g*beishuspeedy=h*beishuSetData(speedx, "MODBUS RTU", 4x, 1#44, 1)SetData(speedy, "MODBUS RTU", 4x, 3#44, 1)end ifend macro_command/*********将反馈回的脉冲传给图形工作台并保存当前电机轴位置*********/ macro_command main()int pulsex,pulseyshort x,y,x1,y1,a,bfloat distance,distance1GetData(pulsex, "MODBUS RTU", 4x, 1#145, 1)GetData(pulsey, "MODBUS RTU", 4x, 3#145, 1) //读取各轴已运行脉冲数distance1=(pulsex*1.0/80000)*(pulsex*1.0/80000)+(pulsey*1.0/80000)*(pulsey*1.0 /80000)SQRT(distance1, distance) //计算出当前电机轴位置在新坐标系上的径向距离SetData(distance, "Local HMI", LW, 17, 1) //显示当前电机的径向位移x=(pulsex*1.0)/80000/5*127y=(pulsey*1.0)/80000/5*127 //当前电机轴在屏幕坐标系上的位置a=127+xb=127-ySetData(a, "Local HMI", LW, 13, 1)SetData(b, "Local HMI", LW, 14, 1) //将电机轴坐标变化传给移动图形工作台SetData(pulsex, "Local HMI", RW, 20, 1)SetData(pulsey, "Local HMI", RW, 22, 1) //保存当前电机轴位置end macro_command/*********************原点校正图形工作台回归**********************/ macro_command main()int bshort aa=127b=0SetData(a, "Local HMI", LW, 13, 1)SetData(a, "Local HMI", LW, 14, 1) //移动图形图形工作台到原点SetData(b, "MODBUS RTU", 4x, 1#145, 1)SetData(b, "MODBUS RTU", 4x, 3#145, 1) //将已运行脉冲数置0 SetData(b, "Local HMI", RW, 20, 1)SetData(b, "Local HMI", RW, 22, 1) //记录原点校正后的电机轴坐标(0.00,0.00 ) end macro_command/*********************X轴报警清楚复位**********************/macro_command main()bool OFFOFF=falseDELAY(1000) //报警清除地址置ON后延时1s,清楚报警SetData(OFF, "MODBUS RTU", 0x, 1#9, 1) //报警清除位地址复位end macro_command/*********************Y轴报警清楚复位**********************/macro_command main()bool OFFOFF=falseDELAY(1000) //报警清除地址置ON后延时1s,清楚报警SetData(OFF, "MODBUS RTU", 0x, 3#9, 1) //报警清除位地址复位end macro_command/*********************X轴恒距点动递加**********************/macro_command main()int pulse,pulsexshort speed,a,bbool OFF,ONspeed=40ON=trueOFF=falseGetData(pulse, "MODBUS RTU", 4x, 1#145, 1) //读取当前已运行脉冲数pulsex=pulse+800 //将目标脉冲数设定为当前已运行脉冲数+800 a=pulsex*1.0/80000/5*127 //目标位置X轴距离b=127+aSetData(b, "Local HMI", LW, 5, 1) //移动X轴向移动的虚线到目标位置SetData(pulsex, "MODBUS RTU", 4x, 1#41, 1) //写入脉冲个数SetData(speed, "MODBUS RTU", 4x, 1#44, 1) //写入运行速度SetData(ON, "MODBUS RTU", 0x, 1#5, 1)SetData(OFF, "MODBUS RTU", 0x, 1#5, 1) //启动DELAY(2000)GetData(pulse, "MODBUS RTU", 4x, 1#145, 1) //读取当前已运行脉冲SetData(pulse, "Local HMI", RW, 20, 1) //保存电机轴当前位置end macro_command/*********************X轴恒距点动递减**********************/macro_command main()int pulse,pulsexshort speed,a,bbool OFF,ONspeed=40ON=trueOFF=falseGetData(pulse, "MODBUS RTU", 4x, 1#145, 1) //读取当前已运行脉冲pulsex=pulse-800 //将目标脉冲数设定为当前已运行脉冲数-800 a=pulsex*1.0/80000/5*127 //目标位置X轴距离b=127+aSetData(b, "Local HMI", LW, 5, 1) //移动X轴向移动的虚线到目标位置SetData(pulsex, "MODBUS RTU", 4x, 1#41, 1) //写入脉冲个数SetData(speed, "MODBUS RTU", 4x, 1#44, 1) //写入运行速度SetData(ON, "MODBUS RTU", 0x, 1#5, 1)SetData(OFF, "MODBUS RTU", 0x, 1#5, 1) //启动DELAY(2000)GetData(pulse, "MODBUS RTU", 4x, 1#145, 1) //读取当前已运行脉冲SetData(pulse, "Local HMI", RW, 20, 1) //保存电机轴当前位置end macro_command/*********************Y轴恒距点动递加**********************/ macro_command main()int pulsey,pulseshort speed,a,bbool OFF,ONspeed=40ON=trueOFF=falseGetData(pulse, "MODBUS RTU", 4x, 3#145, 1) //读取当前已运行脉冲pulsey=pulse+800 //将目标脉冲数设定为当前已运行脉冲数+800 a=pulsey*1.0/80000/5*127 //目标位置Y轴距离b=127-aSetData(b, "Local HMI", LW, 7, 1) //移动Y轴向移动的虚线到目标位置SetData(pulsey, "MODBUS RTU", 4x, 3#41, 1) //写入脉冲SetData(speed, "MODBUS RTU", 4x, 3#44, 1) //写入速度SetData(ON, "MODBUS RTU", 0x, 3#5, 1) //启动SetData(OFF, "MODBUS RTU", 0x, 3#5, 1)DELAY(2000)GetData(pulse, "MODBUS RTU", 4x, 3#145, 1) //读取当前已运行脉冲SetData(pulse, "Local HMI", RW, 22, 1) //保存电机轴当前位置end macro_command/*********************Y轴恒距点动递减**********************/ macro_command main()int pulsey,pulseshort speed,a,bbool OFF,ONspeed=40ON=trueOFF=falseGetData(pulse, "MODBUS RTU", 4x, 3#145, 1) //读取当前已运行脉冲pulsey=pulse-800 //将目标脉冲数设定为当前已运行脉冲数-800 a=pulsey*1.0/80000/5*127 //目标位置Y轴距离b=127-aSetData(b, "Local HMI", LW, 7, 1) //移动Y轴向移动的虚线到目标位置SetData(pulsey, "MODBUS RTU", 4x, 3#41, 1) //写入脉冲SetData(speed, "MODBUS RTU", 4x, 3#44, 1) //写入速度SetData(ON, "MODBUS RTU", 0x, 3#5, 1) //启动SetData(OFF, "MODBUS RTU", 0x, 3#5, 1)DELAY(2000)GetData(pulse, "MODBUS RTU", 4x, 3#145, 1) //读取当前已运行脉冲SetData(pulse, "Local HMI", RW, 22, 1) //保存电机轴当前位置end macro_command/*************8*************原点回归***************************/ macro_command main()int pulse,pulsex,pulseyfloat distance,g,h,l,mshort a,speed,speedx,speedy,beishubool ON,OFFpulse=0a=127distance=0speed=40ON=trueOFF=falseSetData(pulse, "MODBUS RTU", 4x, 1#41, 1)SetData(pulse, "MODBUS RTU", 4x, 3#41, 1) //将两轴脉冲总数置为0 SetData(a, "Local HMI", LW, 5, 1)SetData(a, "Local HMI", LW, 8, 1) //虚线回归原点SetData(distance, "Local HMI", LW, 0, 1)SetData(distance, "Local HMI", LW, 2, 1) //目标距离元件置0GetData(pulsex, "MODBUS RTU", 4x, 1#145, 1)GetData(pulsey, "MODBUS RTU", 4x, 3#145, 1) //读取已运行脉冲数l=pulsex*1.0/80000m=pulsey*1.0/80000 //计算出本次电机位置if l<=0 then //本段程序注释与上边计算速度的程序的注释一样,在次不再注释g=(-1)*lelseg=lend ifif m<=0 thenh=(-1)*melseh=mend ifif g==0 or h==0 thenSetData(speed, "MODBUS RTU", 4x, 1#44, 1)SetData(speed, "MODBUS RTU", 4x, 3#44, 1)else if g>h thenbeishu=40/gspeedx=g*beishuspeedy=h*beishuSetData(speedx, "MODBUS RTU", 4x, 1#44, 1)SetData(speedy, "MODBUS RTU", 4x, 3#44, 1)else if g<=h thenbeishu=40/hspeedx=g*beishuspeedy=h*beishuSetData(speedx, "MODBUS RTU", 4x, 1#44, 1)SetData(speedy, "MODBUS RTU", 4x, 3#44, 1)end ifSetData(ON, "MODBUS RTU", 0x, 1#5, 1)SetData(OFF, "MODBUS RTU", 0x, 1#5, 1) //启动X轴伺服电机SetData(ON, "MODBUS RTU", 0x, 3#5, 1)SetData(OFF, "MODBUS RTU", 0x, 3#5, 1) //启动Y轴伺服电机end macro_command/*************8**********读取上次电机轴位置***********************/ macro_command main()int pulsex,pulseyshort x,y,a,b,cc=1GetData(pulsex, "Local HMI", RW, 20, 1)GetData(pulsey, "Local HMI", RW, 22, 1) //读取上次电机轴位置(已运行脉冲数) SetData(pulsex, "MODBUS RTU", 4x, 1#145, 1) //将上次电机轴位置(已运行脉冲数) SetData(pulsey, "MODBUS RTU", 4x, 3#145, 1)//写入各个伺服驱动器0x90号参数x=(pulsex*1.0)/80000/5*127y=(pulsey*1.0)/80000/5*127 //计算当前工作台位置a=127+xb=127-ySetData(a, "Local HMI", LW, 13, 1)SetData(b, "Local HMI", LW, 14, 1) //将工作台变化传给移动图形工作台SetData(c, "Local HMI", LB, 20, 1)end macro_command赵群辉2011-1-19。