天水西门子代理商 天水西门子代理商
1、指令特点与编程
s7-300/400的转换指令功能相对单一,所有代码转换指令均为用于数据形式转换的指令,且不可以实现ascii码、字符串的转换,也无译码功能。
s7-300/400的数据形式转换指令的主要特点:
①转换指令主要有BCDj、I-BCD、BCD_DI、DI—BCD、DI_RI、I_DI、ROUND、TRUNC、CEIL、FLOOR等,可以进行十六进制数与BCD之间的转换、整数与浮点数之间的转换、浮点数的“取整”等操作。
②与移位指令一样,S7-300/400的数据形式转换一般只能通过累加器1进行,当存储器需要移位时,应将存储器的内容移动到累加器l中。
③S7-300/400的移位操作只能对字、双字长的数据进行,不能用于字节。
数据形式转换指令的梯形图编程与S7-200相似,如需要将输入字IW20的BCD数据(十进制数据)转换为整数(十六进制数据)的程序格式如图10-6.6。
从图10-6.6的指令表程序可以看出,数据形式转换的步是将“源数据”IW20装入累加器l中,再对累加器l的内容进行转换,结果传送到目标存储器MW100中。
2、BCD转换指令
①S7-300/400的BCD数据只能对字、双字长的数据进行,不能用于字节。
②指令BCDI、LBCD用于16位整数与BCD间的转换,由于数据带符号,只能转换3位BCD码,BCD数据的范围为-999~+999。指令BCDDI、DI__BCD用于32位整数与BCD间的转换,同样带符号,只能转换7位BCD码,BCD数据的范围为-9999999~+9999999。
③16位整数的BCD存储格式为:
格式中的空余位(16位整数的bit14~bit12、32位整数的bit30~bit28),一般取与符号位相同的值,如:正数为“O”;负数为“l”。
④当16位、32位整数转换为BCD时,如果出现大于9的十进制数值(如1100等),或者转换后的数值超过了BCD格式允许存储的范围,将出现转换错误,并导致PLC的停止。
3、整数与浮点数转换指令
S7-300/400的数据形式转换指令I DI、DIR用于16位整数与32位整数、32位整数与浮点数之间的转换;ROUND、TRUNC的作用、意义与S7-200相同,用于对浮点数的小数部位处理;CEIL、FLOOR是当浮点与整数相差很大时的两种不同处理方式。
IDI指令可以将16位整数转换为32位整数,其实质只是将符号位从原16位整数的bit15移到32位整数的bit31上,其余数据不变或增补0而已
SIEMENSPLC伺服控制
摘要:伴随着工业自动化的发展,对其中的位置控制 度也逐步的提高,如何能方便,准确的实现位置控制,是一个 重大的问题,本文讲述了如何采用 PLC 可编程控制器来实现。
分别列举了三项方法,以及他们之间的相互比较。
引言随着自动化水平的不断提高,越来越多的工业控制场合需要 的位置控 制。
如何更方便、更准确地实现位置控制是工业控制领域内的一个重要问题。
位置控制的性主要取决于伺服驱动器和运动控制器的精度。
的运动控制模块可以对伺服系统进行非常复杂的运动控制。
但在有些需要位置控制的场合,其对位置精度的要求比较高,但运动的复杂程度不是很高,这就没有必要选择那些昂贵的运动控制系统。
S7-200 系列 PLC是一种体积小、编程简单、控制方便的可编程控制器,它 了多种位置控制方式可供用户选择,如何利用该系列 PLC 实现对伺服电机运动位置较为的控制是本文的研究重点。
1、基本控制系统伺服系统分为液压伺服系统、电气-液压伺服系统以及电气伺服系统。
本文主要讨论了电气伺服系统中的交流伺服系统,其基本组成为交流伺服电机、编码 器和伺服驱动器。
交流伺服系统的工作原理是伺服驱动器发送运动命令,驱动伺 服电机运动,并接收来自编码器的反馈信号,重新计算伺服电机运动目标位 置,从而达到 控制伺服电机运动。
本伺服系统中选用 Exlar 公司生产的GSX50-0601 型伺服直线电动缸。
该电 动缸由普通伺服电机和一个行星滚珠丝杠组成,用来实现将旋转运动转变为直线 运动。
选用 Xenus 公司生产的 XenusTM型伺服驱动器。
它可以利用 RS. 232串口通信方式和外部脉冲方式实现位置控制。
一般来说,一个伺服系统运转需要配置一个上位机,本系统采用西门子 S7-200PLC作为上位机控制器。
通过高速脉冲输出、EM253 位置控制模块、自由口通信三种方式控制伺服电机运动。
2、高速脉冲输出模式 西门子 CPU224XP配置两个内置脉冲发生器,它有脉冲串输出(PTO)和脉冲 宽度调制输出两种脉冲发生模式可供选择。
这两个脉冲发生器的脉冲输出频 率为100kHz。
在脉冲串输出方式中,PLC 可生成一个50%占空比脉冲串,用于 步进电机或伺服电机的速度和位置的控制。
2.1硬件构成
图 1为高速脉冲输出方式的位置控制原理图。
控制过程中,将伺服驱动器工作定义在脉冲+方向模式下,Q0.0 发送脉冲信号,控制电机的转速和目标位置;Qo,发送方向信号,控制电机的运动方向。
伺服电动缸上带有左限位开关 LIM 一、右限位开关LIM+ 以及参考点位置开关 REF 。
三个限位信号分别连接到 CPU224XP 的I0.0~I0.2 三个端子上, 可通过软件编程, 实现限位和找寻参考点。
图 1 位置控制原理图 2.2 程序设计高速脉冲串输出(PTO)可以通过 Step7Micro/WIN 的位置控制向导进行组态,也可通过软件编程实现控制。
PTO 输出方式没有专门的位置控制指令,只有一条脉冲串输出指令,在脉冲发送过程中不能停止,也不能修改参数。
为解决 以上问题,可以设置脉冲计数值等于10(或更小),并能使脉冲发送指令 PLS 处 于激活状态。
这样,就可以在任一脉冲串发送完之后修改脉冲周期。
图 2为高速脉冲输出方式位置控制流程图。
控制思路为:通过 PTO 模式输出,可以控制脉冲的周期和个数;通过启用高速计数器 HSC,对输出脉冲进行实时计数和定位控制,以控制伺服电机的运动过程。
图 2 位置控制流程图 3、EM253 位置控制模块EM253 位置控制模块是西门子 S7-200 的特殊功能位置控制模块,它能够产生脉冲串用于步进电机与伺服电机的速度和位置的开环控制。
3.1 硬件构成 如图 3 所示为 EM253位置控制原理图, 定义伺服驱动器工作在脉冲+方向模 式下。
P0 口发送脉冲,P1 口发送方向,DIS端硬件使能放大器,并清除放 大器错误。
LIM-、LIM+、REF分别为电机左限位、右限位以及参考点。
图 3EM253 位置控制原理图 3.2 程序设计EM253 位置控制模块可以通过 Step7-Micro/WIN 进行向导配置, 配置完成后系统将自动生成子程序,编程简单、可轻松实现手动、自动、轨迹运行模式。
由 于 EM253属于开环控制,不能很好地反馈电机实际运动情况。
利用伺服驱动器本身的差分输出信号,通过伺服驱动器软件设置,反馈给 PLC,实现闭环 位置控制。
但由于直线伺服电动缸与 PLE可允许发送接收信号存在一定差别, 需要对输入到 PLC 的信号进行电平的转化以及降低伺服驱动器发送的反馈脉冲频率。
PLC 对输入脉冲进行累加,从而得到电机的实际运转位置与运转速 度,其脉冲计数程序如下。
①计数器初始化程序 LDSMO.1//*扫描时MOVB16#FC,SMB47//SMB47=16#F4,SMB47 为高速计数器 1 的控制字节 HDEF1,9//将 HSC1配置为正交模式 MOVD0,SMD48//设置 HSCI 的新初始值为 0 MOVD20000,SMD52//设置 HSCI的新预设值为 20000 HSCI//激活高速计数器 I ②脉冲计数程序 LDSMO.0 MOVDHC1,VD600//将高速计数器1 所记数值存储在 VD600 中
DTRVD600,VD610//VD601〕中的整数转化为实数,存人VD610 /RSOOO,VD610//VD610 除以 5000 存入 VD610,5001〕为电机旋转一周编码 器发送脉冲数*R2.54,VD610//VD610 乘以 2.54 存人 VD610,2.54 为电机旋转一周移动的距 离 4、RS-232串口通信方式 4.1 硬件构成 西门子 CPU22
伺服系统和 PLC分别作为系统的主从站。
PLC 控制器通过该通信功能可实现对伺服驱动器进行运行控制、参数读取、伺服驱动器当前运动状 态的读取等操作。
当 S7-200 系列 PLC工作在自由口通信模式下时,一般通过 CPU 模块的集 成接口进行通信。
CPU 集成接口采用了 PPI 硬件规范,其接口为RS-485 串口, 当 S7-200 系列 PLC 的 CPU 与带有 RS-232 标准接口的计算机或伺服驱动器连接时,需要配套选用 S7-200PLC 的 PC/PPI 转换电缆或一个 RS-232/RS-485转换器。
4.2PLC 与伺服系统通信 4.2.1 报文构成S-200PLC 在无协议通信方式工作时,不需要任何通信协议,通信参数需要根据与其进行通信的伺服驱动器的通信格式进行设定。
本伺服系统选用的 Xe-nus 伺服驱动器可通过RS-232 与 PLC 利用 ASCII 码进行通信,其 ASCII 码消息命 令格式如下:<命令代码><命令具体参数>其中:<命令代码>为一个单字母代码;<命令具体参数>表示电机所要执行的任务;为一个回车返回字符,表示命令结束。
如:sr0x2A21表示设置伺服控制器工作在可编程控制模式。
4.2.2 程序设计 程序设计时,将伺服驱动器工作定义在可编程位置模式。
该模式支持实时更 改伺服电机的运动速度、位置,通过RS-232 接收来自 PLC 的 ASCII 码命令,执 行运动。
部分程序如下:
①初始化程序 LDSMO.1//*扫描MOVB9,SMB30//设置自由端口 0 通信方式 SMB30=9、8 位数据位、9600、 PPIMOVB188,SMB87//设置自由端口。
接收信息控制 5MB87=188 MOVB13,SMB89//设置自由端口 0 结束字符 SMB89=13, 即结束字符= MOVW0,SMW90//设置自由端口 0 空闲超时SMB90=0,信息接收始终处于 有效 MOVW200,SMW92//设置自由端口 0 信息超时 SMB92=200msMOVB255,SMB94//设置自由端口 0 接收字符数 SMB94=255 ATCHINT_0,9//发送完成触发中断 0ENI//允许中断 ②发送信息程序 LDNVD3501.1//VD3501.1 为接收延迟,自由端口 0 没有处于接收延迟时ASM4.5//自由端口 0 处于空闲状态,SM4.5=1 AB=VB18,7//命令字节 VB18=7,即要求设置运动目标位置SCPY"sr0xca',VB3100//"sr0xca',复制到 VB3100,"sr0xca'为设置运动目标位 置命令SCATB3600,VB3100//VB360()内的目标位置值连接到设置目标位置命令 后SCATVB3190,VB3100//VB3190 内的结束字节连接到 VB3100 后; XMTVB3100,0//通过自由端口 0发送命令至伺服驱动器 ③发送完成中断程序(接收信息) LDSM0.0//SM0.0 总是为 1 SSM87.7,1//置SM87.7=1,SM87.7 为允许接收信息位