新手请教 CP1E 模拟量信号怎么编程
请教一下 4-20mA的信号 怎样转换成0-20之间数字?CP1E 系列的 先谢了各位 在本贴结束的最后,附上整个例程的程序:http://www.ymmfa.com/images/wind/file/zip.gif CP1E.rar下载次数:398
Good Luck~ 其实很简单的,以下说明假设使用的机型为CP1E-N40和模拟量输入模块CP1W-AD041。
CP1W-AD041是4通道输入的AI模块,其占用4个输入字和用于设定模块参数的2个输出字,由于使用的是40点的主机,因此主机占用的输入与输出地址分别是CIO0~CIO1,CIO100.0~CIO100.7和CIO101.0~CIO101.7。
所以分配给AD041的输入通道地址为,CIO2~5,设定字地址为CIO102,103.
下面是设定字的说明:
http://www.ymmfa.com/attachment/Mon_1202/53_526_dae0b6ed9ecab84.jpg
由说明中可以看到,其最高位必须设置为1,低8位分别用于设定2个通道。
因为我们使用的是第一通道,不需要平均值,通道需要设定为启用,因此2进制就是1010.其余通道均设置成不启用。因此设置为0000.
因此设定字就是#800A,与#8000. 由于在模拟量模块必须先设定再使用,因此,在程序中我们需要第一次循环标志用于设定设定字。
http://www.ymmfa.com/attachment/Mon_1202/53_526_58298e995a6177d.jpg
由于模块设定字写入需要0.1~0.2秒的时间,因此我们使用一个定时器用于延时。
http://www.ymmfa.com/attachment/Mon_1202/53_526_879e393b210a807.jpg
此时通过直接读取模拟量输入通道我们就可以读取到模拟值。 模拟量的读取值在0~6000之间,此值代表4~20mA的输入值,接下来,我们需要通过线性化整定指令将其整定到楼主要求的0~20之间。
在欧姆龙中,线性化指令分为SCL,SCL2,SCL3,其实质是一样的,只是使用的直线方程不同而已,对于一条直线来说,其直线方程可以分为两点式,截距式等等,这里我们就以SCL来描述,其使用的是两点式。
根据手册上对于SCL指令的描述,其输入值根据参数定义的范围进行整定,然后将整定后的值输出。
参数:
第一个地址:整定后的下限
第二个地址:整定前的下限
第三个地址:整定后的上限
第四个地址:整定前的上限
这里:整定后的上下限分别是20,0,而整定前的上下限分别是6000,0.
所以,在使用SCL指令前,首先要设定参数,我们在第一次循环中就做了参数的初始化,参数的初始化不需要必须在第一次循环中设定,你可以在任何SCL指令执行前予以设定。
http://www.ymmfa.com/attachment/Mon_1202/53_526_e057ac65d64cdce.jpg
最后,我们调用SCL指令,完成输入数据的线性整定。
http://www.ymmfa.com/attachment/Mon_1202/53_526_56b43b71686f28d.jpg http://www.ymmfa.com/images/post/smile/default/25.gifhttp://www.ymmfa.com/images/post/smile/default/25.gif明白了 太感谢兄弟了[ 此帖被381715159在2012-02-23 15:29重新编辑 ] 太详细了 谢谢!学习了 C兄的高质量回帖很有学习价值,膜拜啊! 引用
引用第8楼铭杰工控于2012-02-24 13:12发表的:
C兄的高质量回帖很有学习价值,膜拜啊!
向大师致敬
页:
[1]
2