
数据传输讲解
摘要: 在拿到DA 模块说明书时,有很多人看不懂里面的说的什幺,怎幺样,对于AD 和DA 是如何转换的不清楚,今天就将一下转换机制:AD
和DA 模块中有个缓冲存储器分配(BFM),它是与PLC 数据交换时暂时存放数据的地方,FX2N 的BFM 使用...
在拿到DA 模块说明书时,有很多人看不懂里面的说的什幺,怎幺样,对于AD 和DA 是如何转换的不清楚,今天就将一下转换机制:
AD 和DA 模块中有个缓冲存储器分配(BFM),它是与plc 数据交换时暂时存放数据的地方,FX2N 的BFM 使用如下表:
BFM
很多人看不懂这个表说的什幺,首先BFM 是16 位存储,(PLC 中的16 位、32 位就是二进制的位而不是10 进制)。
b15、b14、b13、b12、b11、b10、b9、b8、b7、b6、b5、b4、b3、b2、b1、b0
对于FX2DA,我们只用到BFM 的16 和17 两个编号,其他保留不用看,在#16 里面,只用前8 位,b7~b0,其他保留不用看。#17 里面,只用到
b2~b0,其他保留不用看。这就简单了。这个BFM 怎幺和PLC 进行数据交换呢,用From 和to 指令来完成,Form 是从BFM 中取数据,to 是存数据。
FX2DA 转换的数字量最大为4000,也就是2
"c":
#17 里面有b2~b0,它的功能是:
b0:通过将1 改变为0,通道2 的D/A 转换开始
b1:通过将1 改变为0,通道2 的D/A 转换开始
b2:通过将1 改变为0,D/A 转换的低8 位数据保持。
这里是什幺意思呢?
想要通道2 的D/A 转换开始,就必须要降b0 的值从1 变成0,怎幺实现呢,先传送个1 给b0,再传送个0 就好了。
想要通道1 的D/A 转换开始,就必须要降b1 的值从1 变成0,怎幺实现呢,先传送个1 给b1,再传送个0 就好了。
想要通D/A 转换的低8 位数据保持,就必须要降b2 的值从1 变成0,怎幺实现呢,先传送个1 给b2,再传送个0 就好了。
已说明书例子来讲解下如何实现的:
DA 模块PLC 程序
a:数字数据D100 扩展到辅助继电器(M100~M115),K4M100 表示
M100~M115,k1 表示连续4 个M,例如下面的K2M100 就表示
M100~M107。(为什幺要用M 来表示D 呢,因为我只转换12 位,D 是16 位的)D 换成M(12 位数据的传输)
M 怎幺能存储数据呢,因此M 是个位软元件,只有断开(0)和闭合(1),而PLC 数据都是二进制处理的,比如字软元件D 是16 位的,所以就能通过M 来表示,一个D 需要16 个M 来储存。
b:这条指令时将数据D100 的低8 位传送到BFM 的#16 编号进行输出。c:将D100 的低8 位写到#16 后,还要写高4 位,为了不覆盖,得先把低8 位保持,c 的指令就是保持功能,H0004 是16 进制的数字4.转换成二进制就是100,对应b2b1b0;c 的第一条指令就是将b2 置1,第二条将b2 置0,这样就完成#17 的低8 位保持功能了。
c 指令的低8 位保持功能
e:e 的指令就是D/A 转换,H0002 是16 进制的数字2.转换成二进制就是010,对应b2b1b0;c 的第一条指令就是将b1 置1,第二条将b1 置0,这样就完成#17D/A 转换功能。
DA 转换开始功能
以上就是DA 模块与PLC 之间的数据转换过程。
