为什么我在C脚本里给signed 16 bit value(有符号16数)赋值,没有一种C语言的数据类型可以匹配!!!!高手在吗????急救!!!qq 346324768 谁能帮一把,感激涕零!!!!
问题补充:
谢谢大家关注,我得问题是这样的:我希望从winncc的 i\o field中输入一个10个字符的字符串,然后分解成单个字符,下传到PLC。从step7中建立char变量导入wincc中自动生成10个signed 16 bit value 类型变量tag1-tag10,我现在从画面上做一个按钮,用以下代码希望给上述tag1-10(signed 16 bit value)赋值:
char*p;p=NULL;
while(p==NULL){p=Sysmalloc(sizeof(char)*10);}
如果这样写"tag"=p[0];提示说类型不匹配;
如果SetTagSByte("tag",p[0]);或用SetTagWord函数确实没有错误。但在连接PLC以后,从STEP符号表查看的时候是乱码。得不到希望的字符格式。在画面上测试,发现传给tag变量的是字符的ANSIC码的小数形式。所以我就提出了上述问题。一般这种问题怎么解决啊
最佳答案
为什么不用字符型变量呢,正常plc中一个字符占用1个字节,把你的signed 16 bit value改成text tag 8-bit character set类型,然后用SetTagChar应该可以的
提问者对于答案的评价:
恩 用8位有符号数可以实现了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc272110.html