数据上载

<< 点击显示目录 >>

主页  振动监测 > 实例展示与Demo > X20CM4810 >

数据上载



数据上载则需要通过功能块的相关功能引脚来对模块进行操作,具体的功能块引脚可以参考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

 

以上数据上载的过程就完成了