贝加莱(B&R)北京培训5.24——5.27
1) Dataobject方式,举例说明。
PROGRAM _INIT FOR i := 0 TO 99 DO array1[i] := i + 1; //初始化数组 END_FOR
END_PROGRAM
PROGRAM _CYCLIC IF create = 1 THEN //新建ROM存储区 DatObjCreate_0.enable := 1; DatObjCreate_0.grp := 0; DatObjCreate_0.pName:= ADR('data1'); DatObjCreate_0.len := SIZEOF(array1); DatObjCreate_0.MemType := doUSRROM; DatObjCreate_0.Option := 0; DatObjCreate_0.pCpyData := ADR(array1); DatObjCreate_0( ); IF DatObjCreate_0.status = 0 THEN create := 0; ident := DatObjCreate_0.ident; END_IF END_IF IF info =1 THEN //获得新建区的ID号 DatObjInfo_0(enable := 1, pName := ADR('data1')); IF DatObjInfo_0.status = 0 THEN info := 0; ident := DatObjInfo_0.ident; END_IF END_IF IF read = 1 THEN //从ROM区读数据 DatObjRead_0.enable := 1; DatObjRead_0.ident := ident; DatObjRead_0.Offset := 0; DatObjRead_0.pDestination := ADR(array2); DatObjRead_0.len := SIZEOF(array2); DatObjRead_0( ); IF DatObjRead_0.status =0 THEN read := 0;
26
贝加莱(B&R)北京培训5.24——5.27
END_IF END_IF IF write = 1 THEN //往ROM区写数据 DatObjWrite_0.enable := 1; DatObjWrite_0.ident := ident; DatObjWrite_0.Offset := 0; DatObjWrite_0.pSource := ADR(array1); DatObjWrite_0.len := SIZEOF(array1); DatObjWrite_0( ); IF DatObjWrite_0.status = 0 THEN write := 0; END_IF END_IF
END_PROGRAM
2)FileIO方式。只适用于SG4的CPU。需要设定好存放地址。 2、通讯
2.1、B&R产品CPU之间通讯
运用AsIMA库函数。通讯连接方式可为以太网、Canopen、232。调用贝加莱Samples实例分析,本例是通过以太网连接,读取另一台PLC的变量。服务器程序IMA_Serv,客户端程序 IMA_Client、variables、station1。在station1中设置需要进行通讯的数据。
2.2、帧通讯。
调用DVFrame函数库,进行新建缓存,读写操作,清空缓存等操作。
常用函数为:FRM_xopen(),FRM_write(),FRM_read(),FRM_rbuf()。
27
贝加莱(B&R)北京培训5.24——5.27
需要注意的是读函数需要再利用memory拷贝函数存放到新建的变量中。
2.3、OPC通讯。
OPC设定步骤与2.7完全不同,具体操作如下:
1)首先在Logical View 内新建对象,选择OPC,选择最后一个选项进行新建。如图31
图31
2)双击打开新建的OPC对象,增加变量。图32
28
贝加莱(B&R)北京培训5.24——5.27
图32
3)如图33,在Configuration View 中项目中PLC1图标,点右键,新建对象,选择最后一个选项。其中第一个是在PLC内部实现OPC传输(不知道如何加密),第二个是在windows系统进行OPC传输(需要插硬件狗)。
图33
4)双击打开新建的对象,将Logical View新建的对象拉入,即变量拉入。图34
29
贝加莱(B&R)北京培训5.24——5.27
图34
5)点击“Communication Path”,修改右侧窗口参数:方式为TCPIP、端口、Node号、IP地址等参数,具体如图35。
图35
30