欧姆龙PLC知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
欧姆龙PLC知识
————————————————————————————————作者:————————————————————————————————日期:
SCL2指令应用案例
条件:变送器的输出信号为0-10V,对应温度为-100--200摄氏度;CP1H的模拟量输入量程设置为0-10V,
分辨率选择6000
目的:使用SCL2指令将模拟量转换得到的数据0-6000(BIN)对应缩放到-100--200(BCD)摄氏度显示
输出。
程序如下:
SCL2控制字解释:
200:CP1H的模拟量输入通道1
D100:偏移量(带符号BIN)详见下图
D101:ΔX(带符号BIN)详见下图
D102:ΔY(BCD)详见下图
D200:转换结果通道
结果:程序执行后就可以实现0-6000(BIN)转换到-100--200(BCD)摄氏度显示了。
注:因为BCD数是以十六进制来表示十进制数据的,因此对应的温度值应该用16进制方式去监视。例如:当200CH中的数据是&4000(即6.66V电压输入),那么用十六进制监控数据D200应该显示#100。
&符号表示十进制数;#表示十六进制数。
SCL指令应用案例
条件:变送器的输出信号为0-10V,对应压力为0-400MPa;CP1H的模拟量输入量程设置为0-10V,分辨
率选择6000。
目的:使用SCL指令将模拟量转换得到的数据0-6000(BIN)对应缩放到0-400MPa(BCD)显示输出。
程序如下:
结果:程序执行后就可以实现0-6000(BIN)转换到0-400(BCD)的压力值了。
注:因为BCD数是以十六进制来表示十进制数据的,因此对应的压力值应该用16进制方式去监视。例如:当200CH中的数据是&3000(即5V电压输入),那么用十六进制监控数据D200应该显示#200。
&符号表示十进制数;#表示十六进制数。
使用CPM1A-AD041的模块采集模拟量4-20ma的信号,该模拟量信号取自一位移传感器信号,代表一个0-100mm的距离,要怎么才能把输入通道里
的数据转换成所对应的这个距离值呢?
可以使用SCL指令做此类的定标转换,该指令的作用是把一个16进制数据线性转换成一个BCD码的数据,这条指令有3个操作数见图1,S为源字,P1是参数首字,R是结果字,从P1到P1+3要设置4个值,P1是AY,P1+1是AX,P1+2是BY,P1+3是BX(见图2),在此例中因为输入的数据范围是0-1770 HEX,所以P1+1和P1+3分别是0和1770,而定标结果是0-100,所以P1和P1+2分别是0和100.具体可以这么做,例如AD041的输入通道是002,把DM0作为参数首字,D10作为结果字存放0-100的距离值。
SCL 2 DM0 DM10
在执行SCL指令前先用MOV指令对DM0-DM3里分别赋值0,0,100,1770。之后SCL指令就能把输入的模拟量值定标成0-100的距离值了。
CPM1A-MAD02-CH使用了4路输入,但是它的输入数据是每两路放一个通道的,这样就无法进行监视或处理单独一路的输入数据了,有什么办法可以把两
路数据分离开吗?
可以用MOVD指令,分别把两路数据传送到一个单独的通道。该指令有3
个操作数,
操作数排列如图1,S是源字,也就是用模拟量输入的通道,DI是指定
数位号,每个数字指定方式如上图2,也就是指定从源字中哪一个数字开始传送(一个通道是4个16进制数字,一路输入是半个通道,也就是2个16进制数字),传送几个数字,传送到目标通道的哪个数字,D就是
指定目标通道。例如现在MAD02的第一第二路输入的通道是002通道,现在要把第一路数据传送到DM0,第二路数据传送到DM1,MOVD指
令
CPM1A-AD041的外部输入电流和电压信号要如何接线?
电压输入:把外部的输入正信号接V IN,负信号接com端;
电流输入:把模块上V IN和I IN的端子短接后接输入正信号,负信号接com
端。
CPM1A-MAD02-CH的参数应该怎么设置?
在n+1通道(n为分配给CPU单元或前一个扩展单元的最后一个输出通道)的每个位对应的作用按照如下表分配,在量程对应的位是设定输入输出的量程范围,在启动位和平均值对应的位是设定该功能使用与否,
例如4路输入1路输出全用4-20ma,平均值功能不用,就在N+1通道
设置C3FF HEX就可以了。
CP1H-X□40D□-□的型号是如何定义的?
MOVD指令的解释
举例说明如下:
S:200CH为传送源地址,初始值为#ABCD(十六进制)。
D:300CH为传送目标地址,初始值为#0000(十六进制)。
例1:D300为#0211:
从左往右解释:
2表示传送到目标字以位2开始(即8-11位)。
1表示传送位数2位。
1表示传送源字以位1开始(即4-7位)。
程序执行后,300CH中的值为#BC00。
例2:D300为#0230:
从左往右解释:
2表示传送到目标字以位2开始(即8-11位)。
3表示传送位数4位。
0表示传送源字以位0开始(即0-3位)。
程序执行后,300CH中的值为#CDAB。
CPM2A-30CDR-A配CPM1A-AD041和CPM1A-20EDR1地址是如何分配
的?
CX-Programmer下传程序的时提示UM区被保护,如何处理?
①新建PLC程序时,在设备型号后的设定中选中了文件内存只读,只要把文件内存只读的钩去掉即可;
② 询问CPU型号:
a.CPM系列,DM 6602设为了×××1,可以在编程模式中将DM6602设为×××0后断电上电即可;
b.C200Ha或CQM1系列,CPU盖板下的开关中的DIP-1打在了On上,断电将DIP-1打为Off上电即可;c.CP/CJ/CS系列,如果CPU被加过写保护密码,需要先释放密码,CPU盖板下的开关中的DIP-1打在了On上,断电将DIP-1打为Off上电即可。
在输入模拟量数据后,如果要把数据定标成带小数点的数据,可以怎么做?
两种办法,一是把定标的结果数据放大10的N次方来得出小数点,例如需要2位小数,例如把0-0FA0的输入定标成0-10.00V的BCD码,带两位小数,那就当成0-1000来定标。如果是CP1H或CQM1H那还有一种方法,就是如果把源数据转成浮点数来做浮点运算,也能做到,但因为CPM系列
的PLC不支持浮点数,所以不能用这个方法。
4-20ma模拟量输入的时候,输入信号为4ma,但输入通道的数据在0,65535两个值跳,这是正常的吗?实际使用中如果不能有这样的数据怎么办?
65535的16进制其实是FFFF,因为PLC是用二进制补码表示负数的,其实这个数据是代表-1,也就是模拟量输入在0到-1之间跳动,是属于正常的。如果处理跳变的现象,不要直接用输入
通道的数据,可以把这个数据传送到另一个中间通道后再使用,之前用一条CPS比较指令判断输
入信号是否是负的,如果是负的,就不传送输入通道数据而传送0到这个中间通道,把信号作为
0来处理
几根常用的RS-232C通讯电缆的接线?
①电缆XW2Z-200S-V连接图:
PLC(9孔)侧 PC(9针计算机)侧
2――――2
3――――3
9――――5
PLC的4与5短接
PC侧的4与6短接, 7与8短接