很多网友疑问为什么扩展模块寻址模拟量从AIW16或者AQW16开始;数字量扩展从地址I8或者Q8开始?而网上又搜不到。本人将个人理解整理以便共享。不喜勿喷。 这是为了固定扩展模块首地址,使扩展模块的地址具有唯一性
数字量扩展最大32点(4个字节),模拟量扩展最大8点(16个字节);CPU最大60点(8个字节)。
这样对于S7-200 SMART就是:
每一个扩展模块最多占用字节数:数字量扩展占用4个字节;模拟量扩展16字节。
因为不能确定我们扩展的是什么模块,所以系统默认是最大量,一个扩展模块(无论是什么扩展模块)同时占用:数字量4个字节,模拟量16个字节(8个点)。
这样的结果就是:无论我们扩展的是什么模块,也不管是多少点的模块;只要确定了扩展模块的位置(EM0-EM5),就决定了这个模块的首地址。也就是说这个位置的扩展模块的首地址是固定不变的,并且是唯一的。
这样最大的优点就是不会造成我们编程的时候对地址的错误使用(硬件接线地址与程序地址不符)
由于CPU也是一个模块(系统默认数字量占用8个字节,无论是20点 还是60点;模拟量不管实际模块占用多少点,系统默认都是占用16字节),这就是为什么EM0位置:数字量扩展首地址是8.0;模拟量首地址是W16,无论输入、输出。因为前面地址被CPU默认占用。
假如:你前面EM0-EM4位置都是数字量扩展,模拟量扩展在EM5,你整个系统的模拟量首地址就是AIW96或者是AQW96;同样的道理,无论前面什么扩展,EM5数字量扩展模块的首地址一定是28。这个可以自己计算,很简单的规律。
我刚接触SMART的时候,由于只能扩展6个模块假如模拟量多就造成数字量不够用的尴尬。那时候还没有32点扩展,最大16点,我当时的困惑,为什么这样寻址,几年后有了32点扩展解决了数字量不够用的问题,同时也理解了寻址规律。心里恍然大悟:“原来如此”。
这也给了我们一个信息:无论他以后如何发展,CPU总点数不会超过8个字节,一个数字量扩展模块不会超过32点,一个模拟量扩展模块不会超过8个信号16W
比老200的优点是:
200数字量与模拟量扩展寻址是分开的,就是说模拟量与数字量扩展寻址是各自独立的。后面的扩展寻址必须根据前面扩展的是模拟量还是数字量模块决定首地址,这样虽然也可以容易寻址,但是容易造成同一个位置的扩展模块,由于前面扩展模块的类型不同而首地址就不同。SMART就解决了这个问题,只要确定了扩展模块的位置就决定了首地址,并且是唯一的。
哈哈哈 由于在线等邮件,所以无聊就啰嗦了。
敬请各位网友们莫怪糟老头太啰嗦。不喜勿喷