- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Compax3T40用三种开关方式控制LED灯的闪烁
一、功能
接通电源后,led灯处于熄灭状态
合上开关,led灯被点亮,并开始以一定的频率闪烁(这里设灯亮1s,暗2s,周期为3s)。
断开开关,led灯熄灭。
这里的开关可以分别是C3MGR2自带的软件模拟开关,实际的硬件开关,通过串口通信传递的命令控制开关。
二、原理
开关(硬件开关或软件开关)闭合时,向数字I/O口X12的第6脚I0输入一高电平,作为开关信号,compax3开始执行相关程序,使X12/2,即O0口输出周期为3s的方波信号(高电平为22.35v,低电平为0v),从而使led灯闪烁。
通过串口通信的方式将object 1903.1,即C3Array.Col03_Row01置为1,作为启动程序的开关信号,从而实现led灯的闪烁。
三、硬件
元器件
Compax3, 10v电源,电路板,led灯,电阻,导线若干
原理图如图1所示
图1
需要说明的问题:
X12/11必须和X12/1相连,enable四个输出口。
输入引脚上的电压大于9.15v时为高电平,否则为低电平。
四、软件
周期为3s的脉冲信号是用PLC程序来实现。
主程序是用SFC来架构,各个子程序是用FBD来实现的,具体如下:
SFC主程序,如图2
图2
初始化程序,如图3
图3
点灯程序,如图4
图4
熄灯程序,如图5
图5
五、串口通信
1. Object
Compax3的每一种状态和对其进行操作的每一个参数都有其对应Object,例如实现绝对位移的操作是函数是MC_MoveAbsolute,对应的一个参数是position,它就有其对应的object,C3Plus.POSITION_position,编号是1111.1。其具体信息如下图所示:
从这个表里,我们可以得到关于这个object的所有信息。对于我们现在使用的这种型号的驱动器(C3S063V2F10 I11 T40 M00),主要关心如下信息:
1)功能:在Remark里面有详细说明。
2)存取方式(Access):这里既可读也可以写。
3)有效周期:对于有的object来说,对其值做的变化并不能立即被compax3识别。这可以从valid after 来判断。可以立即识别的就是immediately,否则就是VP。对于后者,如果我们要想所设置的变量有效的话,还必须向object 210.10(C3.ValidParameter_Global)写入一个不为0(TRUE)的值。另外,对这些object所做的改变只是临时的,在compax3断电后就会消失;要想永久地让这种改变起作用,必须在对这个object进行操作后,紧接着向object 20.11(C3.ObjectDir_WriteObjects)写入不为0的值(TRUE)。
4)是否为codesys中的object,及其数据类型(codesys format)。
5)取值范围,minimum/maximum value。
2. 串口通信格式
利用串口通信对compax3进行操作主要是通过对object进行读写来实现的。
Parker公司提供了两种通信格式:ASCII码格式和二进制码格式。前者实现起来比较容易,后者操作复杂,但速度快、安全性好。这里只对前者作简要介绍,后者可参看手册上相关内容。
ASCII码格式如下:地址符+命令符+回车(CR)。
地址符:RS232通信没有地址码;RS485的地址码从0到99,可以在C3 ServoManager下的RS485 settings中进行配置。
命令符:命令符是由从0X21到0X7E的这些可被表示的ASCII码组成,小写字母和空格如果不在双引号里的话,前者将被改写成大写字母,后者被删除。对于在小数前后的连接符都当作小数点来看待。如果在数字前加上“$”,该数字就为16进制的;如果在回车前加“$”,返回的数字信息也是16进制的。
向compax写入命令后,它会有一个Answer strings作为回应。
读命令:读数字的话,直接返回对应的数字,长度不定;读字符信息(e.g.软件版本号),就返回该信息,长度一定。
写命令:成功,就返回符号“”;否则,就返回字符“!XXXX”,XXXX是一个4位的16进制数字,其含义可以从手册上查到。
命令格式:
1)读object:RS232: O [$] Index, [$] Subindex [$]
RS485: Address O [$] Index, [$] Subindex [$]
例如用RS232从Object 402.2读出信息,可表示为O $0192,2$ 或 O 402,2
2)写object: RS232: O [$] Index, [$] Subindex = [$] Value [; Value2; Value3; ...]
RS485:
文档评论(0)