VW 中的W表示WORD VB中的B表示BYTE 一个WORD由两个BYTE组成。
例 如十进制的9999这个数,用16进制表示是270F VW10=270F
VW10=270F VB10=27 VB11=0F
270F
9999=39(16进制27)*16*16 + 0*16+F(10进的15)
VW10 VB10 VB11
为什么取VB11的高四位的时候,先用了一个除法,除法的作用是什么?
高4位的表示已经乘过两个16 比如 100 这个十进数 可以理解这个1是 1*10*10
就算VW10除以16出来VB20,怎么后面又用VB21了?完全不懂这里面VW,VB的前后关系
VW10除以16以后的值不仅是VB20,而是VW20, VW20包含VB20 和VB21。
1、数据保持功能可以在系统块中进行设置,需要注意的是系统块编辑之后只有下载到PLC之后才会生效。
2、V区的保持特性与数据类型无关,无论VB、VW还是VD都一样。
3、“断电之后再上电数据就会改变”这更像是程序自身的问题,请检查数据内,程序里是否有相应的初始化,以及程序里有没有开机就会执行的程序给数据位赋值了。
4、C可以在系统块里设置保持功能。
5、应用S7-200时,可以选用以下几种数据保持方法:、CPU的内置超级电容,断电时间不太长时,可以为数据和时钟的保持提供电源缓冲、CPU上可以附加电池卡,与内置电容配合,长期为时钟和数据保持提供电源、设置系统块,在CPU断电时自动保存M区中的14个字节数据、在数据块中定义不需要更改的数据,下载到CPU内可以永久保存、用户编程使用相应的特殊寄存器功能,将数据写入EEPROM永久保存、上述前三个数据保持功能都是在“系统块-数据保持”中设置。
6、详见西门子官方文档:见《西门子S7--200的数据保持问题》下载:http://www2.ad.siemens.com.cn/download/Upload/AS/faq/F0424.pdf
VW10 的低 8 位是 VB11,高 8 位是 VB10。这是西门子 PLC 地址的规定,也是俗称的地址大端设计。