我在PLC中定义双字存储 M120.0~M123.6(共31个二进制变量输出),对应的我在WinCC中定义个无符号的三十二位数MD120变量,全部点强制断染发现,IO监控这个变量时发现值为128,正好是双字的第8位,对应PLC中定义的输出点最后一个点(未作定义的第32个Nrtwork M123.7),依次强制发现各位点的值都增加了128,请问这是什么原因?
另外我想取这个双字的第16位:
int gscAction( void )
{unsigned int y;
y=GetTagDWord("mixer1" );
if ( (y&65664)==65664)
SetTagBit"run9706",1);
else SetTagBit("run9706",0);
我是&65664(强制第十六位通IO显示),还是&65536呢?
问题补充:
PLC中定义个FC,共31个二进制点,对应地址:M120~M123.6(双字差一位M123.7),再在WinCC中定义个无符号的32位数:地址MD120,连接画面上的IO域,在PLC端强制各点M120~M123.6断,Wincc中IO域显示值为:128(这个32位数的第8位,好像是M123.7,可未在PLC中定义),请问这是怎么回事?在PLC依次强制各个点位,相应IO域中的值都增加128,例如第17位值为65664,请问我这段脚本对吗:
#include "apdefap.h"
int gscAction( void )
{unsigned int y;
y=GetTagDWord("mixer1" );
if ( (y&65664)==65664)
SetTagBit"run9706",1);
else SetTagBit("run9706",0);
是&65665还是&65536呢?
最佳答案
问题的描述太差劲了,貌似还有错别字,这样怎么能让人回答出来呢?
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276628.html