- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
codesys与C#做共享内存通信
本节在学习codesys怎样通过共享内存的方式进行与C#程序做通
信
共享内存,多个进程可以对内存中的一块区域进行读写操作,达
到数据交互的目的。
在共享内存使用时,需要将这个安装包
SharedMemoryCommunication安装到codesys下,包文件需要的
话私信联系我即可
在安装完成codesys的SharedMemoryCommunication后,就
开始我们今天的学习吧
1.新建工程,然后在库管理器中添加,在高级这个选项卡。
2.在搜索框中搜索SysShm和SysTypes2Interfaces这两个库文
件
这样就添加完库了,库中具体函数的名称,在库中可以查看,也
可以在百度中看到其他博主的介绍,我这就略过了哈
3.新建一个DUT,类型选择为结构,也就是说,在进行通信时,
数据类型为建立的这几种类型,同样,也可以读数据的建立一个DUT,
写数据的建立一个DUT,这样在共享内存时更加方便。本次实验采用
了第一种方式。
TYPEDataExchange:
STRUCT
diValue1:DINT;
diValue2:DINT;
bValue3:BOOL;
END_STRUCT
END_TYPE
4.PLC程序的建立
声明变量
//ThisprogramshowshowtoreadandwritetoShared
Memory.
PROGRAMPLC_PRG
VAR
tt:Ton;
hShMemRead:RTS_IEC_HANDLE;
ResultRead:RTS_IEC_RESULT;
deInstRead:DataExchange;
ReadResult:RTS_IEC_RESULT;
iRead:__UXINT;
hShMemWrite:RTS_IEC_HANDLE;
ResultWrite:RTS_IEC_RESULT;
deInstWrite:DataExchange;
WriteResult:RTS_IEC_RESULT;
iWrite:__UXINT;
ulSize:UDINT:=SIZEOF(DataExchange);
END_VAR
在这要注意的是,共享内存的名称一定要和C#中的统一,否则就
存在通信失败的情况
tt(IN:=TRUE,PT:=T#2000MS);
IFtt.QTHEN
//ReadstructurefromSharedMemory.
hShMemRead:=SysSharedMemoryCreate(Test_Read,0,
ADR(ulSize),ADR(ResultRead));
iRead:=SysSharedMemoryRead(hShMemRead,0,
ADR(deInstRead),SIZEOF(deInstRead),ADR(ReadResult));
iRead:=SysSharedMemoryClose(hShm:=hShMemRead);
//WritestructuretoSharedMemory.
hShMemWrite:=SysSharedMemoryCreate(Test_Write,0,
ADR(ulSize),ADR(ResultWrite));
deInstWrite.diValue1:=deInstWrite.diValue1+2;
deInstWrite.diValue2:=deInstWrite.diValue2-3;
文档评论(0)