数据上载则需要通过功能块的相关功能引脚来对模块进行操作,具体的功能块引脚可以参考help当中的内容 以下展示的程序通过轮询的方式,依次将模块的四个通道锁存的数据进行上载,并分别存储到变量gCMSDataTyp.ACCRaw中,以供后续程序的变量使用
CASE PreUpLoad:(*ParaInit*)
(*Upload Para*)
IF BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer = 0 THEN
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer := 9; (*C1 RAW ACC vs Time*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.nrArrayElements := gMaxPoint;(*Buffer Length*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayXaxis := ADR(gCMSDataTyp.SampleTime);
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayYaxis := ADR(gCMSDataTyp.ACCRaw[0, 0]);
ELSIF BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer = 9 THEN
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer := 11; (*C2 RAW ACC vs Time*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.nrArrayElements := gMaxPoint;(*Buffer Length*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayXaxis := ADR(gCMSDataTyp.SampleTime);
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayYaxis := ADR(gCMSDataTyp.ACCRaw[1, 0]);
ELSIF BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer = 11 THEN
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer := 13; (*C3 RAW ACC vs Time*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.nrArrayElements := gMaxPoint;(*Buffer Length*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayXaxis := ADR(gCMSDataTyp.SampleTime);
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayYaxis := ADR(gCMSDataTyp.ACCRaw[2, 0]);
ELSIF BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer = 13 THEN
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer := 15; (*C4 RAW ACC vs Time*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.nrArrayElements := gMaxPoint;(*Buffer Length*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayXaxis := ADR(gCMSDataTyp.SampleTime);
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.pArrayYaxis := ADR(gCMSDataTyp.ACCRaw[3, 0]);
ELSIF BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer = 15 THEN
BufferLoadTyp.FBTyp.VBioCtrlCM4810.paramBufferUpload.moduleBuffer := 0;
BufferLoadTyp.StatTyp.AllChanneUpload := TRUE;
END_IF
BufferLoadTyp.InternalTyp.Step := UpLoad;
CASE UpLoad:(*Start Upload*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.enable := TRUE;
BufferLoadTyp.FBTyp.VBioCtrlCM4810.uploadBuffer := TRUE;
IF BufferLoadTyp.FBTyp.VBioCtrlCM4810.status = 0 THEN
(*Monitor the upload bufferLen*)
BufferLoadTyp.StatTyp.LoadBufferLen := BufferLoadTyp.FBTyp.VBioCtrlCM4810.bufferUploadLength;
IF EDGEPOS(BufferLoadTyp.FBTyp.VBioCtrlCM4810.bufferUploadDone) = TRUE AND BufferLoadTyp.StatTyp.AllChanneUpload = FALSE THEN(*Upload the buffer*)
BufferLoadTyp.FBTyp.VBioCtrlCM4810.uploadBuffer := FALSE;
BufferLoadTyp.InternalTyp.Step := PreUpLoad;
ELSIF EDGEPOS(BufferLoadTyp.FBTyp.VBioCtrlCM4810.bufferUploadDone) = TRUE AND BufferLoadTyp.StatTyp.AllChanneUpload = TRUE THEN(*All Buffer UpLoad ok*)
BufferLoadTyp.StatTyp.AllChanneUpload := FALSE;
BufferLoadTyp.InternalTyp.Step := UpLoadOk;
END_IF
ELSE
BufferLoadTyp.StatTyp.ErrorCode := BufferLoadTyp.FBTyp.VBioCtrlCM4810.status;
BufferLoadTyp.InternalTyp.Step := ErrorHandling;
END_IF
|
以上数据上载的过程就完成了