PLC与Matlab的简单通信

软件:Portal V17    MATLAB R2021b

硬件:西门子s7-1200(DC/DC/DC)

1、博途中新建一个空白项目,CPU为1212DC/DC/DC(与自己手上的设备对应),在默认变量表中新建四个变量,其中TCON_Req控制TCON模块用于建立通信连接,TDIS_Req控制TDISCON模块用于断开通信连接,TSEND_Req控制TSEND模块用于控制PLC向Matlab发送数据,TRCV_Req控制TRCV模块用于控制PLC接收Matlab的数据。

2、主程序中添加TCON块(指令--通信--开放式用户通信--其他)并进行组态

3、连接参数中,伙伴选择“未指定”,新建连接数据,连接类型选择TCP,连接ID1,伙伴地址填写matlab所在主机ip地址,端口2000

4、主程序中添加TDISCON、TSEND、TRCV三个模块

5、程序块中添加全局DB块,新增两个Byte变量,PLC_to_Matlab和Matlab_to_PLC,分别用于TSEND和TRCV块的data端,然后编译代码,下载至PLC中运行代码启用监视

6、Matlab中新建脚本,输入t=tcpip('192.168.0.1', 2000, 'NetworkRole', 'Server');前两个参数为PLC的IP地址和本机端口号,保持代码并运行,命令行窗口打开执行fopen(t)打开TCP连接,然后去博途内修改TCON_Req为1然后修改为0(REQ端上升沿有效),matlab和plc建立通讯成功

7、TSEND的数据块写入33,通过matlab接收(TSEND的REQ端置1后置0)

8、matlab向PLC写入33,PLC接收(TRCV的REQ端置1后置0)