技术论坛

 回复:关于c脚本里SetTagRaw(GetTagRaw)函数的参数

返回主题列表
作者 主题
newgoodman
新手

经验值:34
发帖数:22
精华帖:0
楼主    2006-03-28 15:51:20
主题:关于c脚本里SetTagRaw(GetTagRaw)函数的参数
帮助不太理解,谁能给个例子啊,比如把一个原始变量中间取一段赋给一个double 型的数组,十分感谢!!
Armstrong.F
侠圣

经验值:2055
发帖数:1586
精华帖:11
    2006-04-07 19:51:19
精华帖  主题:回复:关于c脚本里SetTagRaw(GetTagRaw)函数的参数
非常幸运,找到了其中的一个例子,里面也有我当初调试的痕迹,两种方法都能看到。
这里先帖出一段代码,有心人就可以看明白了:
然后整个项目比较大,2.3M,谁真正有需要的话,发个MAIL给我,说明缘由,我通过邮件发给你!
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#define CHARBEGIN 6
#define CHARLENGTH 10 // STRING[10]
int i=0, k=0;
short int IntValue;
short float FloatValue;
char StringValue[255];
size_t StringLength;

BYTE *IntBuffer;
BYTE *FloatBuffer;
BYTE Buffer[18]; // Buffer to turn the Bytes

IntValue = GetTagWord("IntVar_write"); // Get the Integervalue
FloatValue =GetTagFloat("FloatVar_write"); // Get the Floatvalue
strcpy(StringValue,GetTagChar("CharVar_write")); // Get the String

IntBuffer = (BYTE*)&IntValue; // Pointer for transfer
FloatBuffer = (BYTE*)&FloatValue; // Pointer for transfer
// Integervalue, bytes turn from Motorola- to PC INTEL-Format and
// write the Integervalue into the rawdata buffer
Buffer[0] = IntBuffer[1];
Buffer[1] = IntBuffer[0];
// Floatvalue, bytes turn from Motorola- to PC INTEL-Format and
// write the Floatvalue into the rawdata buffer
Buffer[2] = FloatBuffer[3];
Buffer[3] = FloatBuffer[2];
Buffer[4] = FloatBuffer[1];
Buffer[5] = FloatBuffer[0];
// Headerinformation for S7-STRING
Buffer[6]=CHARLENGTH; // 1. additional Byte S7-STRING / needed by S7
StringLength = strlen (StringValue);
Buffer[7]=(BYTE)StringLength; // 2. additional Byte S7-STRING / needed by S7

// write Stringvalue in rawdata buffer / realized with for-loop
for(i=CHARBEGIN +2 ; i< CHARBEGIN + 2 + CHARLENGTH; Buffer[i++] = StringValue[k++] );
// write the RawDataVariable
SetTagRaw("RawVar",&Buffer[0],18);
}
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。