西门子 SIMATIC S7-200脉冲输出指令.pdf

所需积分/C币:10 2019-09-18 11:14:23 369KB PDF
20
收藏 收藏
举报

西门子 SIMATIC S7-200脉冲输出指令pdf,脉冲输出指令(PLS)检测为脉冲输出(Q0.0)或(Q0.1)设置的特殊存储器位,然后激活由特殊存储器位定义的脉冲操作。
控制字节中的PwM更新方法位(SM674或SM774)用来指定更新类型。执行PS指令激活这些改 变。注意如果改变了时间基准会产生一个异步更新,而和这些控袆位无关。 PTO操作 PTO提供指定脉沖个数的方波(50%占空比脉冲串发生功能。周期可以用微秒或亳杪为单位指 定。周期的范围是50到65.535微秒,或2到65,535毫秒。如果设定的問期是奇数,会引起占空比 的些失真。脉冲数的范围是1到4294,%67,295 如果期时间少于2个时间单位,就把冑期缺省地设定为2个时间单位。如果指定脉冲数为O,就 把脉冲数缺省地设定为1个脉中 状态字节中的PTO空位(SM66或SM76⑦用来指示可编程脉冲串完成。另外根据脉冲申的 完成调用中断程序(有关中断和通讯指令的细节请见915节≯如使用多段操作,根据包络表的完 成调用中断程序请见下面的多段管线 ηTO功能允许脉沖串的排队。当激活的脉沖申完成时,立即开始新脉冲的输岀。这保证了顺序输岀 脉冲串的连续性 有两种方法完成管线单段管线或多段管线 单段管线在单段管线中,需要为下—个脉沖串更新特殊寄存器。一旦启动了起始PO段,就必须 立即按照第二个波形的要求改变特殊寄存器并再次执行PS指令。第二个脉冲串的属性在管线 直保持到第个脉冲申发送完成。在管线中一次只能存个入口,一旦第—个脉冲串发送完成, 接着输出第二个波形管线可以用于新的脉冲串。重复这个过程设定下一个脉冲串的特性 除下面的凊况外脉冲串之门进行平滑转换 如果发生了时间基准的改变 如果在利用門S指令捕捉到新脉冲串前启动的脉冲串已经完成 当管线满时,如果试图装入管线状态寄存器中的PTO溢出位(③M666或SM766将置位。当 PC进入RN状态时这个位初始化为08如果要检测序列的溢出必须在检测到溢出后手动清 除这个位 多段管线在多段管线中,CPU自动从Ⅴ存储器区的包络表中读出每个脉冲串段的特性。在该模式 下,仅使用特殊寄冇器区的控制字节和状态字节。选择多段操作,必须装入包络表的起始V存储 器区的偏移地址(SMw168或SMw178时间基准可以选择微秒或者毫秒但是在包络表中的所 有周期值必须使用一个基准而且当包络执行时不能改变。多段操作可以用PLS指令启动。 每段的长度是8个字节,由16位周期值、16位厝期增量值和32位脉冲计数值组成 包络表的格式如表g15所示。多段PIO操作的另一个特点是按照每个脉冲的个数自动增减問期的 能力。在厝期增量区输入一个正值将增加期输入一个负值将减小問期输入0值将不改变周 期 如果在许多脉冲后指定的厝期增量值导致非法周期值,会产生一个算术溢岀错误,同时停止PIO 功能PIC的输岀变为由映像寄存器控制。另外在状态字节中的增量计算错误位③SM64或 SM764)被置为1o 如果要人为地终止一个正进行中的PTO包络,只需雯把状态字节中的用广终止位SM665或 SM76.5)置为l 当PTO包络执行时,当前启动的段数目保存在SMB166SMB76中。 表9-15多段PIO操作的包络表格式 从包络表开始的 字节偏移 包络段数 描述 段数(到255):数0产生-个非致命性锠误 将不产生PTO输 初始周期到6555时间其准单位) 个脉冲的問增量侑有符弓債)(-32768到32767 时间基准单位) 脉冲数(到4294967295) 初始問期到6555时间基准单位) 11 每个脉渖的期增量(有符号值(-32768到32767 时间基准单位 13 「脉平数(到4294967295) 计算包络表值 PTOIPWM发生器的多段管线能力在许多应用中非常有用,尤其在步进电机控制中 图920的例子说明了如何生成包络表值按要求产生输出波廾速电机.恒速运行然后减速电 频率 10 kHz 2 kHz 时间 第1段 第2段 第3段 (200脉冲) (400脉冲) 4000脉冲 图9 20步进电机应用的频率时间图举例 对该例,假定需要400个脉冲达到雯求的电机转动数,启动和结束频率是2Hz,最大脉冲频率是 10kHz。由于包络表中的值是用周期表示的,而不是用频率,需要把给定的频率值转换成周期值 所以启动和结束的周期是500u最大频率对应的周期是100u 在输出包络的加速部分,要求在200个脉冲左右达到最大脉沖冲频率。也假定包络的减速部分在 400个脉冲完成 在该例中使用一个简单公式计算 PTOPWM发生器用来调整每个脉冲周期所使用的周期增量值: 给定的周期增量=FCT-ICT|Q ECT=该段结束周期时间 ICT=该段初始化期时间 利用这个公式,加速部分第1段的問期增量是-2。相似地减速部分(第3段)的周期增量是 l。由于第2段是恒速控制因此该段的周期增量是0. 假定包络表存放在从VBm开始的ⅴ存储器区,表9-16给出了产生所要求波形的值 表916包络表值 V存储器地址 VB500 3(总段数) VW501 500(初始周期-段# VW503 -2(問期增量-段#) w505 200(脉冲数段#1) w509 100(初始期-段#2) Vw511 0(周期增量-段#) VWS13 340(中数-段#2) w517 100(初始周期-段#3) VW519 1(周期增量-段#3) ⅤD521 400(脉数-段 该表的值可以在用户程序中用指令放在ⅴ存储器中。一种方法是在数据块中定叉包络表的值。图 9-23是采用多段PTO操作的程序指令举例 段的最后一个脉冲的期在包络中不直接指定,但必须计算出(除非問期增量是0)如果需要在段 之间需要平滑转换,知道段的最后—个脉冲的周期是有用的。计算段的最后一个脉冲厝的公式 是: 段的最后一个脉冲的周期时间=LCT+(DEL*(Q-1) ICT=该段初始化期时间 DL=该段的增量冑期时间 Q=该段的脉冲数量 作为介绍上面的简例是有用的实际应用能需要更复杂的波形包绍。记住 周期增量只能以微秒数或亳耖数拦定 周期的修改在每个脉上讲行 这两项的景响是对于个段的周期增量的计算可能需要孴代方法。对亍结朿周期值或给定段的脉冲 个数可能需要作调整 在碓定校正包络表的过程中,包络段的持续时间很有用。按照下面的公式可以计算完成-个包络 段的时间长短: 包绍持时-Q*(CT+(DEL2)*(Q1)) Q=该段的脉冲数量 ICT=该段的初始化周期时间 DEL=该段的增量周期时间 PTOPWM控制寄存器 表9-17是控制 PTO/PWM操作的寄存器,利用表9-18可以作为快速参考,确定放入 PTOPWM控 制寄存器中的值,启动要求的操作。对 PTO/PWM0使用SMB67,对 PTO/PWM1使用SMB77 如果要装入新的脉冲数(SMD72或SMD82)、脉沖度(SMw70或SMw80或咭期(SMw68或 SMW8)应该在执行PIS指令前装入这些值和控制寄存器。如果要使用多段脉冲中串操作,在使用 PS指令前也需要装入包络表的起始偏移量(SMw68或SMw78)和包络表的值 表917 PTO PWM控制寄存器 00.0 O0.1 状态宇节 SM664SⅥ764PTO包络由于增量计算错误而终止 0=无错误:1=终止 sM665SM6.PTo包络由于用戶命令而终止 0=无错误F1=终止 SM66SM766PTO管线上益下溢 0=无上溢!1=上溢下溢 SM667SⅥ767PTO末 0=行中1=PTO空闲 Q0.0 O0.1 「控韦亏 SM670SM70 PTO/PWM更新周美值0一不更新:1=更新周期值 SM67.1SM7PWM更新脉冲克度值0=不新:1=尿冲竞度值 SM674SM74PWM更病方法:0=异步新;1=同步更新 SM67.5SM7.5PTO操作: 0=单段操作:1=多段操作 SM67.6SM76 PTO/PWM模主选择0=选择PTO:1=选择PwM M677SⅥ777 I PTO/PWM充 0=禁止 PTOPWM 1=允许 PTOPWM 00.0 O0.1 真它 PTOPWM寄存器 SMW68|SMW78 PTO/PWM周值(闺:2到65535) SMW70SMW80「PWM脉冲览度值(范围:0到6555) SMD72Sm82PTo脉冲计数值(范围:I到4294967295) SMB66SMB176进行中的数用在多段PIO操作中) sMW168sMW178包络表的起始位置,用从Ⅶ开始的字节偏移表示(仅用在多段 PTO操作中) 表918 PTO/PWN控制字节参考 控制L 执行PLs指令的结果 寄存器「允许模式 PTO PWM 时基脉中数|脉冲「周期 (16进制 选择段操作更新方法 宽度 PTO 段 16#84 Yes Pto单段 lus周期装入 16#85 PTO Ius周 16#89 PTO单段 lms周期 装入 16#8C PTO Ims/周 16#8D Yes PTO单段 Ims周期装入 16#A0 Yes PTO lus/周 16#A8 Yes PTo多段 Lms/周期 16#Dl Yes PWM 16#D2 PWM 同步 周期 ‖裴入 16HD3 同县 Lus/周期 16#D9Y PWM Ims/周排 装入 16 DA Yes PWM 同步1ms/周期 装入十 16#DB Yes PWM 同步 周期 PTO/PWM初始化和操作顺序 η TO/PWM的初始化和操作步说明如下。它可帮助你更好地理解PO和wwM功能的操作,这些 步骡的说明使用了输出α∽0。初始化操作假定S-200已置成RN模式因此初次扫描存储器位 为真(SM01=1)如果不是这种情况或POPWⅵ必须重新初始化你可以用一个条件(不一定 是初次扫描存储器位来调用初始化程序。 PWM初始化 把Q0初始化成PM,应遵循以下步骤: 1.用初次扫描存储器位(SM0.I)设置输岀为,并调用执行初始化操作的子程序由于采用了 这样的子程序调用υ后续扫描就不会冉调用这个子程序ν从而减少了扫描时间υ也提供了 个结构优化的程序。 2.初始化子程序中,把16#D3送入SMB67,使PMM以微秒为增量单位(或16DB使PWM 以毫秒为增量单位)用这些值设置控制字节的目的是:允许 PTO/ PWM功能选择PM 操作选择以微秒或亳杪为增量单位υ设置更史新脉宽和問期值 3.向SMW68(字)写入所希望的周期值 4.向SMW70(字)写入所希望的脉宽 5.执行PLS指令,以使S7200对 PTO/PWM发生器编程。 6.向SvB67写入16D2选择以微秒为增量单位(或16#DA选择以亳秒为增量单位)这复位 了控制字节中的更新周期值位但允许改变脉宽。可以装入一个新的脉宽值,然后不需要修改 控制字节就执行PLS指令。 7.退出子程序 修改PWM输出的脉沖宽度 为了在子程序中改变M输出的脉宽,请遵循如下步骤:(假定SMB67中装入16#2或l6#DA) 1.调用个子程序,以把所需脉宽装入SMW70字)中。 2.执行PLS指令;使S7-200对 PTO/PWM发生器编程。 3.退出子程序 PTO初始化-单段操作 为了初始化PTO请遵循如下步骤: 1.用初次扫描存储罟位⑧SMO.)复位输出为0;并调用执行初始化作的子程序。由于采用了 这样的子程序调用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了· 结构优化的程序 2.初始化了程序中,把16#85送入SM67使PIO以微秒为增量单位(或16冂使PO以亳 秒为增量单位)。用这些值设置控制字节的目的是:允许 PTO/PWM功能,选择PO操作, 选择以微秒或毫秒为增量咩位,设置更新脉冲计数和周期值 3.向SMW68(字)写入所希望的周期值 4.向SMD72(双字)写入所希望的脉冲计数 5.可选步骤。如果你想在个脉冲串轴出PTO完成时立刻执行个相关功能,则可以编程 使脉冲串输出完成中断事件(事件号19)调用个中断子程序;并执行全局中断允许指令 参见9.16节中断指令以了解中断处理的详细内容。 6.执行PLS指令使S7-200对 PTO/PWM发生器编程。 7.退出子程序 修改PTO周期-单段操作 当使用单段PT○操作时,为了在中断程序中或子程序中改变PTO周期请遵循如下步骤: 1.把16#81送入SMB67μ使PTO以微秒为增量荜位(或16#89使PTO以毫秒为增量单位)用 这些值设置控制字节的目的是:允许 PTO/PWM功能υ选择PrO操作;选择以微秒或亳秒 为增量单位,和设置更新周期值。 2.向SMW68(字)写入所希望的周期值 3.执行PIS指令,使S7-200对 PTO/PWM发生器编程∮在更新周期的PIO波形开始前CPU 必须完成已经启动的PTO 4.退出中断程序或子程序 修改PTO脉冲数-单段操作 当使用单段PTO操作时,为了在中断程序中或子程序中改变PTO脉冲计数请遵循如下步骤 1.把16#84送入SM367,使PTO以微秒为增量单位(16#8C使PTO以宅秒为增量单位) 用这些值设置控制字节的目的是:允许 PTO/PWM功能,选择PTO操作,选择以微秒或亳 秒为增量单位,和设置更新脉冲计数。 2.向SMD72(双字写入所希望的脉冲计数 3.抉行PLS指令,使S7-20对 PTO/PWM发生器编程,在更新周期的PIO波形开始前,CPU 必须完成已经启动的PTOa 4.退出中断程序或子程序 修改PTO周和脉冲数-单段操作 当使用羊段PT○操作时。为了在中断程序中或子程序中改变PTO的問和脉冲计数,请遵循如下 步骤 1.把16#85送入SMB67使PTo以微秒为增量单位(16#8D使PO以宅秒为增量单位) 用这些值设置控制字节的目的是:允许 PTO/PWM功能,选择PIo操作,选择以微秒或亳 秒为增量单位』设置更新周期和脉冲计数 2.向SMW68(字)写入所希望的周期值 3.向SMD2(双字)写入所希望的脉中计数 4.执行PLS指令;使$7-200对 PTO/PWV发生器编程;在更新周期的PIO波形开始前;CPU 必须完成已经启动的PTOa 5.退出中断程序或子程序 PTO初始化-多段操作 为了初始化PTO请遵循如下步骤: 1.用初次扫描存储器位⑧SⅥO.1)复位输岀为θ·并调用执行初始化操作的子程序由于采用了 这样的子程序调用,后续扫描不会冉调用这个子程序;从而减少了扫描时间;也提供了 结构优化的程序 2.初始化子程序中,把16#A0送入SMB67,使PTO以微秒为增量单位(或16#A8使PTO以亳 秒为增量单位)。用这些值设置控制字节的目的是∷允许 PTO/PWM功能,选择PO操作 选择以微秒或亳秒为增量咩位;设置更新脉冲计数和周期值 3.向SMW168(字)写入包络表的起始存储器偏移值。 4.在包络表中设定段数,确保段数区(表的第一个字节正确 5.可选步骤。如果你想在一个脉冲串输出PTO)完成时立刻执行一个相关功能,贝可以编程 使脉冲串翰出完成中断事件(事件号19)调用-个中断子程序ν并执行全局中断允许指令。 参见916节中断指令p以了解中断处理的详细内容。 6.执行PLS指令,使S7-200对 PTO/PWM发生器编程 7.退出子程序 PWM举例 图921是脉冲宽度调制PMM)的实例 LAD STL MAIN OB1 Network 1 SMO Mo. 1 Q0.1 首次扫抽。复亻 位一个映像寄 存器位,并调用子程序0 CALL Network 2 Network 2 当脉冲歌度改变成50%a1 时 需要把M M0 0置位 HPHSBRT 结束主程序 UBROUTINE O 子程序0开始 Network 1 设定控制字节 MOV B SMOD 选择PWM操作 ·选择ms增量,同步更新|Movw100080 16#DBo上s-设定脉冲度和期 V 1000, SMw80 允许PWM功能 MOy W MOVB 1 6HDA SMB77 N ENO 设定周期为10,000ms 10000-N0m}sM78 ENO 设定脉冲贾度为1000ms 1000 OUT SMW80 启动PWM操作 PLS 20 MOV B 为子序列脉冲宽度修改预 裝控制字节 16#DA IN OUT FSMB77 SUBROUTINE 1 M0.0 子程序1开始 etwork 设定脉冲宽度为500ms SMOO 5000 SMW8 0 MOVw 5000.SMW80 修孜脉冲宽度 图921使用wM的高速输出实例 FBD MAIN OB1 Network AND sM0.1 SMO SBRO AND SBR1 Mo. o IN OUT sM0.0 I SUBROUTINE 0 Network 1 MOV B MOV W M0.0EN ENO EN ENO EN ENO ① N OUT -SMW7R a 16#DB IN OUT OUT B77 10000 1000 SUBROUTINE 1 Network 61 SMO.0-EN ENO EN ENO +5000- IN OUTHSMW0100 时序图 10%占空比 占空比|50%占空比 子程序1此处执行 (周期=10000ms) 图9 21使用PwM的高速输出实例(续)

...展开详情
试读 17P 西门子 SIMATIC S7-200脉冲输出指令.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
weixin_38743737 你的留言是对我莫大的支持
2019-09-18
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 至尊王者

    成功上传501个资源即可获取
关注 私信
上传资源赚积分or赚钱
最新推荐
西门子 SIMATIC S7-200脉冲输出指令.pdf 10积分/C币 立即下载
1/17
西门子 SIMATIC S7-200脉冲输出指令.pdf第1页
西门子 SIMATIC S7-200脉冲输出指令.pdf第2页
西门子 SIMATIC S7-200脉冲输出指令.pdf第3页
西门子 SIMATIC S7-200脉冲输出指令.pdf第4页

试读结束, 可继续读2页

10积分/C币 立即下载 >