西门子PLC变量类型自动转换小技巧

发布时间:2023-11-19
西门子plc,s7-200系列内存格式与我们常用pc机正好相反,它是高字前,低字后。我们可以将字变量放后两个字节,程序初始化时将前两个字节清零(程序其它方不使用这两个字节)。
如我们定义符号时将字变量定义vw2,同时保持vw0值为零。则程序中可以用vw2以字型访问该变量,同时也可以vd0以双字型访问,避免了类型转换。
避免使用时混淆,最好以明确符号定义来区分字类型和双字类型。此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写有意义英文单词组合作变量名。本人习惯下缀:
b----字节型变量(byte)
w----字型变量(word)
d----双字变量(double)
r----实型变量(real)
f----位变量(flag) btn---自复位按钮式输入(button)
sw----切换开关或自锁按钮输入(switch)
sig---传感器、编码等电平信号输入(signal)
rly---输出继电器位(relay)
……
当然,这个个人习惯来,没有定则,主利于自己区分。
有一个字类型变量名为varname,为使用前面转换技巧,我们可以这样定义:
wvarname----vw2
dvarname----vd0
程序初始化时将vw0清零是不需要记忆变量,直接将dvarname清零也可)数据块中将vw0设置为零。则以后需要以字类型访问变量时就用wvarname,需要以双字类型访问变量时就用dvarname。完全不需要类型转换。
本方法可以极大减少程序语句数,使程序更简洁、可读性更好,不需要做耗时类型转换,程序运行效率也到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节内存,以后程序中不能使用vw0。但西门子s7-200系列ram空间很大,一般是用不完,以西门子plc,cpu226为例,有多达10kram,本人从来没有超过1k。这些ram都是花钱买来,不用白不用,不用也是浪费了。
同理,有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字内存宽度浪费一个字节,避免类型转换。
上一个:CC0603KRX5R8BB224,X5R 0603 220nF ±10% 25V
下一个:u盘无法停用通用卷设备因为某一程序仍在访问它怎么办(u盘无法停用卷设备)_1

文冠果
天竺葵的施肥管理
天竺葵插条保湿技术-花木枝条保湿技术
城市绿道规划有哪些设计流程?
香雪兰的养护方法
怎么在qq邮箱里发文件夹(怎么在qq邮箱里发文件到邮箱)
教你如何一秒修复手机烧屏(手机屏幕残影修复办法视频)
T梁预制时混凝土振捣要求有哪些?
RC1206FR-0715RL,1206 15Ω 1% 1/4W 电阻
一盏在手 波澜不惊