西门子 PLC 200的数据格式问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 12:59:02
编程的时候 比如用MOV_W 将65535 放到VW200中 在状态监控下 用 <>I看到的VW200为什么是 -1 呀? 在PLC的命令中 I和W 都代表 字 吗 有什么区别吗?是不是W代表0到65535 而I代表 -32768到32768 ?有办法直接判断VW中大于32768的数据吗? 比方说设立个VW200=50000的条件可以吗 怎么弄呀?
语句里只有 ==B ==D ==I ==R ==S 用哪个?

你那个整数65535超出单整数和字的范围了,所以输出一个错误结果,想表示超过32768的数要用双整数DI,另外“整数”即是一个字的数据格式,有是一个独立的数据类型,整数比较指令里的整数是指整数类型,而不是字的整数格式,所以有些比较指令须先用转换指令进行格式转换,比如你这条指令将一个字MOV_W到另一个字VW200中,如果需要对VW200中的内容进行比较,须使用双字传递指令和双整数比较指令,所以你必须先把这个双字转换成双整数类型,才能进行比较,

MW 为整形变量,代表字,为2个字节 ,能容纳2的16次方个数, 在PLC中的范围应该是 -32768到32767 ,所以你的65535实际是超出了!
如果不够,哪就用长整型,即MD,为4个字节,范围是-2147483648到2147483647

你的第2个问题“VW200=50000”:如果你想比较,只要范围不超出,直接用“==”指令比较就形了