各位高手,用WinCC需要同时对S7 300写入10个字节的数据,假设10byte从MB581-MB590,我想通过下面的代码实现,请问我该怎么写,由于我对C不很了解,希望高手能给出一个完整的代码,谢谢了。
或通过其他方式可以实现,也可以,请高手赐教。
//定义一个原始数据类型变量,以下是局部脚本举例
#define DATA_SIZE 10
BYTE byData[DATA_SIZE];
int data;
data=GetTagWord("tagname0");byData[1]=data;
data=GetTagWord("tagname1");byData[3]=data;
data=GetTagWord("tagname2");byData[5]=data;
data=GetTagWord("tagname3");byData[7]=data;
data=GetTagWord("tagname4");byData[9]=data;
SetTagRaw("rawtagname",byData,DATA_SIZE);
//SetTagRaw是先定义后组合,再付值。
//GetTagRaw一样,先定义后取出,再分配
问题补充:
具体说说,就是用代码对10个字节写入寄存器,分开写会出错,就是怎么把10个byte组合在一起 然后以一个变量的形式写入寄存器。
最佳答案
一个关于数据完整性的问题。
我想wincc和step7通讯中应该有专门的功能块来实现,如果没有就只好自己编程序来实现了,增加额外的信息位来进行同步(如数据准备就绪、数据已读出)。
提问者对于答案的评价:
能不能跟我说说具体怎么做 我的邮箱是nickleen@yeah.net
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc269718.html