西门子S7-1200紧凑型PLC在当前的市场中广泛使用的,由于其xingjiabigao,所以常被采用小型自动化控制设备的控制器,这也是经常与第三方的设备(扫描枪),打印机等设备进行通讯。
因为没有第三方的设备,这里就以超级终端引入了自由口通讯。
01
控制系统原理
![图片](//static.11467.com/img/lazy.gif)
(图1:控制系统原理)
02
硬件需求
S7-1200 PLC目前共有3种类型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
这两种类型的CPU都可以连接三个串口通信。模版。
本例中使用的PLC硬件为:
1)PM1207电源(6EP1 332-1SH71)
2)S7-1214C(6ES7 214 -1BE30 -0XB0)
3)CM1241 RS232(6ES7 241 -1AH30 -0XB0)
03
软件需求
1)编程软件Step7 Basic V10.5(6ES7 822-0AA0-0YA0)
04
布局
我们通过按照惯例的实际操作来介绍如何在Step7 BasicV10.5中配置S7-1214C和超级终端通信。点击桌面上的“ Totalally Integrated Automation PortalV10”图标,如下图:
![图片](//static.11467.com/img/lazy.gif)
(图2:新建S7 -1200项目)
首先需要选择“创建新项目”选项,然后在“项目名称:”里输入PTP;在“路径:”中,将项目的存储路径设置为“C:\”;单击“创建”,这样就创建了一个文件PTP的新项目。创建后的窗口如下图所示:
![图片](//static.11467.com/img/lazy.gif)
(图3:新建项目后)
点击门户预览左下角的“ Project View”切换到项目预览下,如下图:
![图片](//static.11467.com/img/lazy.gif)
(图4:切换到项目)
切换到项目后,在“设备”标签下,单击“添加新设备”,在弹出的菜单中输入设备名称“PLC_1”,并在设备列表中选择CPU的类型。选择后如下图:
![图片](//static.11467.com/img/lazy.gif)
(图5:PLC硬件配置)
插入CPU后,单击CPU左边的空槽,在右边的“ Catalog”里找到“Communication”下一个的RS232模块,拖拽或双击此模块,这样就把把串行器插入到硬件配置里,然后就需要配置此后RS232模块硬件接口参数,选择RS232模块,在其下面的会出现该模块的硬件配置窗口,在属性窗口中就有两个选项,一个是“通用”;一个是“RS232接口”。在“常规”里包括了此模块的“项目信息”和“命令信息”;而在“RS232接口”里包括“项目信息”,“端口的配置”,“发送信息的配置”,“接收信息的配置”和“在这里我们选择“ RS232interface”,在“端口”配置的选项里,进行的参数配置,波特率为:9600;校准方式:无;数据位为:8;停止位:1;硬件流控制:无;等待时间:1ms。
设置参数如下图:
![图片](//static.11467.com/img/lazy.gif)
(图6:RS232接口配置)
此时确认一下“硬件识别号”为11。然后,完成了硬件的配置,接下来需要编写串行通讯程序,在这里我们实现两个功能:一,S7-1200发送数据给超级终端;二,超级终端发送数据给S7-1200对于第一个功能:S7-1200发送数据给超级终端,则是S7-1200是数据的发送方,超级终端是数据的接收方,对于S7-1200需要编写发送程序;而对于超级终端则意味着,只要:超级终端程序,配置硬件接口参数与前面S7-1200的扩展参数即可。下面的步骤将具体介绍此功能实现的步骤:①,在PLC中编写程序,然后在主菜单(OB1)上,在OB1,在主程序中调用SEND_PTP功能块,如图所示:(SEND_PTP)在指令库下一个的扩展指令中通讯指令下一个)
![图片](//static.11467.com/img/lazy.gif)
(图7:调用发送功能块)
要对SEND_PTP赋值参数,首先需要创建SEND_PTP的背景数据块和发送缓冲数据块,双击“设备”->“PLC_1” ————>“程序块” ————“添加新块”, DB_Send_PTP,选择DB块,在类型后选择“SEND_PTP(SFB113)”
![图片](//static.11467.com/img/lazy.gif)
(图8:创建发送功能块的背景数据块)
插入背景DB后,再重新插入发送缓冲DB块,重复上面的步骤,只是在选择DB类型为“ Global DB”,并去掉“Symbolic accessonly”选项勾(这样就可以将该DB块进行直接访问)建好这两个DB块后,,双击:DB_SEND_BUFF预先定义好要发送的数据,如下图所示:
![图片](//static.11467.com/img/lazy.gif)
(图9:在接收范围内中接收到的数据)