问题描述:
在EcoStruxure Machine Expert - Basic里如何处理 0-65535 的数值数据所属产品线:
EcoStruxure Machine Expert - Basic(原SoMachine Basic)解决方法:
16位可用变量%MWi被命名/描述为WORD,但实际上总是与INT相同,有符号的16位值范围(-32768;+32767)
(意味着在变量表中%MWx中的值45000是实际为有符号的-20536,变量表中输入任何值如果大于32767则会显示为负数)
对于局部变量,我们知道有一个正的最大值大于32767(这是UNIT的定义),那么在整个程序中只需要使用32位格式%MD而不是%MW
对于与M221外部的某些设备交换IN/OUT的变量,有时没有选择,变量的16位格式由第三个设备设备定义/固定
例如:对象%MWa通过modbus通信写入M221,我们需要在M221在数学运算程序中使用这个值
然后,除了初始的%MWa,我们还需要使用另一个变量%MDb和一个操作,通过保持初始的正UINT值将%MWa转换为%MDb
为此,我们只能使用这个操作
%MDb:= CONCATW(%MWa, 0),它强制高字为0
结果是:
如果% MWa = 2000;然后% MDb = 2000
如果%MWa=45000(程序里显示值为-20536),则%MDb=45000
是否有帮助?