朋友的心 发表于 2012-7-12 08:53:15

新手请教 CP1E 模拟量信号怎么编程

请教一下 4-20mA的信号 怎样转换成0-20之间数字?CP1E 系列的 先谢了各位

青春岁月 发表于 2012-7-12 11:29:36

在本贴结束的最后,附上整个例程的程序:
http://www.ymmfa.com/images/wind/file/zip.gif CP1E.rar下载次数:398

Good Luck~

奥术符文 发表于 2012-7-12 09:32:20

其实很简单的,以下说明假设使用的机型为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.

这个夏天 发表于 2012-7-12 10:11:25

由于在模拟量模块必须先设定再使用,因此,在程序中我们需要第一次循环标志用于设定设定字。

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

此时通过直接读取模拟量输入通道我们就可以读取到模拟值。

拉丁教父 发表于 2012-7-12 10:50:30

模拟量的读取值在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

按时发生 发表于 2012-7-12 12:08:41

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重新编辑 ]

小空分 发表于 2012-7-12 12:47:46

太详细了

liion 发表于 2012-7-12 13:26:51

谢谢!学习了

pk360 发表于 2012-7-12 14:05:56

C兄的高质量回帖很有学习价值,膜拜啊!

乖乖女 发表于 2012-7-12 14:45:01

引用

引用第8楼铭杰工控于2012-02-24 13:12发表的:
C兄的高质量回帖很有学习价值,膜拜啊!

向大师致敬
页: [1] 2
查看完整版本: 新手请教 CP1E 模拟量信号怎么编程