在USS-INIT指令中active怎样使用例:16#00000001表示什么意思?谢谢
问题补充:
一个USS-INIT指令是否可同时指定几个驱动,地址应是多少
最佳答案
USS_INIT 子程序的 Active 参数用来表示网络上哪些 USS 从站要被主站访问,即在主站的轮询表中激活。网络上作为 USS 从站的驱动装置每个都有不同的 USS 协议地址,主站要访问的驱动装置,其地址必须在主站的轮询表中激活。USS_INIT 指令只用一个 32 位长的双字来映射 USS 从站有效地址表,Active 的无符号整数值就是它在指令输入端的取值。
例子如下:从站地址映射
位号 MSB LSB
31 30 29 28 ... 03 02 01 00
对应从站地址 31 30 29 28 ... 3 2 1 0
从站激活标志 0 0 0 0 ... 0 0 0 1
取16 进制无符号整数值 0 .... 1
(2进制4位(0000-1111)->16进制1位(0-F),转换标准8421)
Active = 16#00000001
在这个 32 位的双字中,每一位的位号表示 USS 从站的地址号;要在网络中激活某地址号的驱动装置,则需要把相应位号的位置设为二进制“1",不需要激活 USS 从站,相应的位设置为”0"。最后对此双字取无符号整数就可以得出 Active 参数的取值。
在上例,我们将使用站地址为0 的 MM 440 变频器,则须在位号为 00的位单元格中填入二进制“1"。其他不需要激活的地址 对应的位设置为”0"。取整数,计算出的 Active 值为 00000001 h,即 16#00000001。
补充:一个USS-INIT指令是否可同时指定几个驱动,地址应是多少?
可以,比如激活地址0,1两个从站:
对应从站地址 31 30 29 28 ... 3 2 1 0
从站激活标志 0 0 0 0 ... 0 0 1 1
取16 进制无符号整数值 0 .... 3
(2进制4位(0000-1111)->16进制1位(0-F),转换标准8421)
Active = 16#00000003
再比如激活地址3,4两个从站:
对应从站地址 31 30 29 28 ... 4 3 2 1 0
从站激活标志 0 0 0 0 ... 1 1 0 0 0
取16 进制无符号整数值 0 .... 1 8
(2进制4位(0000-1111)->16进制1位(0-F),转换标准8421)
Active = 16#00000018
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc353233.html