在工业控制系统中,某些现场的控制设备和智能仪表没有标准的现场总线接口,只有串行通信接口。它们往往使用厂家定义的非标准的通信协议,有的使用Modbus协议。
点对点(Point to Point)通信简称为PtP通信,又称为串行通信。串行通信用于S7 PLC和带有串行通信接口的设备(例如计算机、打印机、条形码阅读器、机器人控制系统、扫描仪等)之间传输数据。
1.点对点通信的通信协议
点对点通信主要用来与非西门子设备通信。S7-300/400的点对点通信可以使用的通信协议主要有ASCII driver、3964(R)和RK512。它们在7层OSI参考模型中的位置如图9-9所示。
ASCII driver只使用7层OSI模型中的物理层,用于控制CPU和一个通信伙伴之间的串行连接的数据传输。ASCII driver可以发送和接收开放式的数据,提供一种开放式的报文帧结构。ASCII driver可以用结束字符、帧的长度和字符延迟时间作为报文帧结束的判据。接收方必须在组态时设置一个报文帧的结束判据。
国内极少有人使用3964(R)和RK512协议,中国期刊网几乎没有有关的文章,因此本节主要介绍ASCII driver。
图9-9 PtP协议在OSI参考模型中的位置
2.Modbus协议
Modbus是一种基于串口的通信协议,在工业控制中得到了广泛的使用。Modbus协议是一个主-从协议,采用请求-响应方式,主站发出带有从站地址的请求报文,具有该地址的从站接收到后发出响应报文进行应答。Modbus协议有ASCII和RTU(远程终端单元)这两种报文传输模式。
3.串行通信处理器
(1)CPU 31xC-2PtP集成的串行通信接口
CPU 313C-2PtP和314C-2PtP有一个集成的RS422/485通信接口,可以使用ASCII和3964(R)通信协议;CPU 314C-2PtP还可以使用RK512协议。其他没有集成PtP串口的CPU的串行通信需要使用CP 340、CP 341、CP 440或CP 441通信处理器模块。
(2)CP 340通信处理器
CP 340通信处理器的价格便宜,它有3种不同的型号,通信接口分别为RS-232C、20mA(TTY,国内很少使用)和RS-422/RS-485,可以使用的通信协议有ASCII、3964(R)和打印机驱动程序。所有的串行通信CP模块都可以使用与变频器通信的USS协议。
(3)CP 341通信处理器
CP 341有一个通信接口,有3种不同的型号,分别采用不同的通信接口。可以使用的通信协议包括ASCII、3964(R)和RS 512协议。
通过安装相应的软件和插在CP模块上的硬件加密狗,CP 341和CP 441可以使用Modbus RTU主站协议和Modbus RTU从站协议。Modbus RTU协议只能在价格较高的CP 341和CP 441-2上使用,并且需要为Modbus RTU协议单独付费,使用成本较高。
S7-200、S7-200 SMART和S7-1200集成了Modbus RTU主站协议和RTU从站协议,用它们集成的RS-485接口来实现Modbus RTU协议通信要经济得多。
(4)S7-400的串行通信处理器
CP 440、CP 441-1的功能和CP 340、CP 341差不多,CP 441-2可以插入两块IF 963子模块。
(5)ET 200S的串口模块
订货号为6ES7138-4DF01-0AB0的串口模块ET 200S 1SI支持ASCII和3964(R)协议,订货号为6ES7138-4DF11-0AB0的串口模块支持MODBUS和USS协议,它们均支持RS-232C、RS-422或RS-485接口,它们的价格仅为S7-300同类模块的几分之一。
4.使用ASCII协议发送和接收数据
(1)安装CP的组态工具软件(www.xing528.com)
用于点对点通信的CP附带的光盘中有CP的组态工具、带有CP通信功能块和功能的库和程序实例,安装它以后才能对PtP CP组态和编程。安装好之后,在程序编辑器左边窗口的“库”文件夹中,将会出现名为“CP PtP”的文件夹(见图9-10)。
图9-10 PtP通信的块
图9-11 设置CP 340的参数
(2)生成项目
在SIMATIC管理器中,用新建项目向导创建一个新的项目,项目名称为“ASCII”(见随书光盘中的同名例程),CPU为CPU 313C-2DP。
在HW Config中,将电源模块、信号模块和CP 340 RS422/485插入机架。CP 340在5号插槽,模块的起始地址为272。双击机架中的CP 340,单击它的属性对话框下面的“参数”按钮,在打开的参数设置对话框中(见图9-11),用“Protocol”(协议)选择框选中ASCII协议。单击信封形状的Protocol图标,打开Protocol对话框,设置的串口参数见图9-12,传输速率为9600bit/s,数据位为8位,停止位为1位,奇偶校验位为“Even(偶校验)。
在Interface(接口)选项卡,选中半双工的“RS 485”(见图9-12下面的图)。其他参数均采用默认值。单击 按钮,编译并保存组态信息。双击机架中的CPU,打开CPU的属性对话框。在“周期/时钟存储器”选项卡中,选中复选框“时钟存储器”,设置用于时钟存储器的存储器字节为MB8,时钟存储器位M8.5的周期为1s。
图9-12 设置CP 340的协议参数与接口参数
(3)调用FB3和FB2发送和接收数据
在SIMATIC管理器中生成用来保存发送数据和接收数据的数据块DB1和DB4,在这两个数据块中分别生成一个有18B的数组。下面是OB1中的程序:
在OB100中,用SFC21将DB1中的字全部初始化为16#1234,将DB4中的字清零。在每100ms执行一次的OB 35中,将发送的第一个字DB1.DBW0加1。
(4)通信测试
作者做实验用的CP 340的接口是RS-422/RS-485,CP 340的接口与计算机的RS-232C接口之间用S7-200的PC/MPI适配器来转接。也可以用PC适配器USB(将USB映射为RS-232口)串联RS-232/RS-485转换器,来连接CP 340的RS-485接口和计算机的USB接口。
做实验时用随书光盘中的串口通信调试软件来发送数据和显示接收的数据。打开该软件后(见图9-13),执行菜单命令“串口设置”→“串口属性”,设置计算机串口的传输速率、数据位、奇偶校验位和停止位等参数,对话框下面的状态栏给出了串口的状态与设置的参数。
图9-13 串口通信调试软件
执行菜单命令“串口设置”→“打开/关闭串口”命令,打开串口,在“通信记录”文本框中,可以看到CP 340每秒一次发送18B数据给计算机,接收的前两个字节DB1.DBW0)是动态变化的。可以用“清空”按钮清除“通信记录”文本框中的数据。
在“发送帧”文本框输入要发送的数据后,单击“发送”按钮,数据被发送到PLC。可以选择用字符串、十进制字节或十六进制字节这3种数据格式输入要发送的数据。十进制字节或十六进制字节数据之间用空格隔开,各数据必须在一个字节允许的范围之内。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。