PROGRAM Pro_ReadVAR UiSize : __UXINT := 200; CreateResult : SysShm_Implementation.RTS_IEC_RESULT; SMHandler : SysShm_Implementation.RTS_IEC_HANDLE; WriteResult : SysShm_Implementation.RTS_IEC_RESULT; ReadResult : SysShm_Implementation.RTS_IEC_RESULT; CloseResult : SysShm_Implementation.RTS_IEC_RESULT; StrVal : STRING; StrData : STRING; bWrite : BOOL; bRead : BOOL;END_VARIF bRead THEN //创建 SMHandler := SysSharedMemoryCreate(pszName:= 'AppShareMemory', ulPhysicalAddress:= 0, pulSize:= ADR(UiSize), pResult:= ADR(CreateResult)); //打开 SMHandler := SysSharedMemoryOpen2(pszName:= 'AppShareMemory', ulPhysicalAddress:= 0, pulSize:= ADR(UiSize), pResult:= ADR(CreateResult)); //读取 SysSharedMemoryRead( hShm := SMHandler, ulOffset := 0, pbyData := ADR(StrData), ulSize := SIZEOF(StrData) , pResult := ADR(ReadResult)); //关闭 CloseResult := SysSharedMemoryClose(hShm:= SMHandler); bRead := FALSE ;END_IF ;
3. App Run
因为今天已经是春节假期的开始,家里只剩下东莞摩昇的控制器。原本是想用之前山东易码科技的那个一体机的(因为他的硬件采用的是昆仑通态的触摸屏,然后在软件上做了适配,可以用QT进行界面的二次开发。用QT下的C++来实现共享内存的交互,界面效果可以做的很好看。)回头我找时间再做进一步的这方面的分享。
其实通过上图可以看到,现在的控制器上是可以跑多个App的程序的。然而实际硬件的内存其实只有一个。通过这种方式的交互,在视觉的项目中,其实可以很高效的实现Pass和NG的信号传输。
*不过,需要注意的是,不可同一时间对同一个内存句柄进行写入。
结尾
更多功能块的使用,有需要可多交流。(春节假期,不要浪费大家陪家人的时光,文献会适当的简短。)点个关注,不迷路~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!