北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章530 浏览8075383

工业串口通信之西门子CP340/341串口模块

        昨天有几个小伙伴向我反馈了《工业串口通信之有话好好说》的读后感,感谢大家的支持哦,我们也将继续分享工业智能控制领域的技术和经验。细心的你也许已经发现,这里的文章都是分系列的,由浅入深,循序渐进。就"工业串口通信"这个系列而言,其实真正写起来的时候,我感觉要写的东西还挺多。这不,关于PLC的串口模块我就打算分三篇文章来介绍,第一篇文章介绍西门子 S7-300/400系列的CP340/CP341模块,第二篇介绍分布式系统中 ET200S 的1 SI模块,第三篇文章介绍中小规模的PLC S7-1200系列的串口模块CM1241。有没有感觉到工控技术像中华武术一样博大精深?不管你有没有这种感觉,我反正是有这种感觉。。。

        好了,不扯了,开始介绍CP340/CP341啦。

0.jpeg   CP是Communication processor的缩写,中文翻译为通信处理器。西门子PLC有很多CP模块,包括串行通信的、以太网通信的等等,不同类型的模块用数字进行区分。CP340/341都属于串行通信(serail communication),CP343用于以太网通信。今天这篇文章我们着重介绍CP340,然后介绍下CP341与CP340有什么区别。

    在CP340家族中,西门子又根据总线标准(电气接口)的不同,分成三种产品。CP340-RS232(C);CP340-20mA-TTY;CP340-RS422/485;三种产品的订货号如下图:

1.jpeg

    RS232\RS422\RS485这三种电气接口标准我们在前面已经介绍过了,这里我们想简单介绍下20mA-TTY这种接口。20mA-TTY接口包含了2种接口类型:1)20mA 电流环接口;2)TTY接口;

    第一种20mA电流环接口:该接口是美国电子工业协会(EIA)未正式颁布的一种串行通信接口标准(未正式颁布使用都挺广泛,厉害了EIA),与各种现代数字通信方式不同,该标准使用模拟量电流信号进行通信,由于不需要复杂的编码、解码工作,使得通信变得很简单;另外由于电流环与生俱来的抗干扰能力,在噪声环境复杂的工业现场具有很高的可靠性。

    20mA电流环用4mA表示零信号,用20mA表示满量程信号,而低于4mA高于20mA的信号用于各种故障的报警。具体信息请看下面的表格:

2.jpeg

第二种TTY接口:也是一种电流环,但是它用电流的有无来表示数字量的0和1,电流的大小约等于20mA(即20mA表示逻辑1,0mA表示逻辑0)。TTY可以理解为一种数字量的电流环。TTY由于没有国际标准,各厂家的TTY不一定通用。

CP340-20mA-TTY的外观如下图:

4.jpeg

CP340-20mA-TTY的9针串口的定义如下:

5.jpeg

   再来看看常用的RS232电气标准。

   CP340-RS232C使用标准的9针D型公头连接器,支持标准的RS232电气信号,所有的引脚均与电源隔离。

    CP340-RS232的外观如下:

6.jpeg

下图是CP340前面板打开的示意图:

0.png

    该模块有三个LED灯,SF(Sysem Faults)为"系统故障"灯,点亮时为红色,表示有系统错误;TxD(Transmit Data)为"发送数据"灯,点亮时为绿色,表示正在发送数据;RxD(Receive Data)为"接收数据"灯,点亮时为绿色,表示正在接收数据。

    CP340需要通过总线连接器与背板总线相连接,以获取电压和与CPU进行通信。总线连接器如下图:

1.png

    CP340所有的模块(RS232\RS422\RS485\20mA-TTY)均支持ASCII协议,3964(R)协议和打印机协议(专门向打印机输出串行数据),下面我们来说说CP340的硬件组态及软件编程。

    打开“博途V13”在“硬件目录(hardware catalog)”中选择“通信模块(communication modules)”-“点对点”(point-to-point),找到CP340模块,根据你的需要选择相应电气接口的模块,如下图:

7.jpeg

在示例程序中,我们组态了三种通信模块,选择任何一个模块,在其下方的属性框中,可以选择不同的协议(Protocol)

8.jpeg如果你选择ASCII协议的话,需要对传输速率,数据位,停止位,奇偶校验等参数进行配置。

PLC软件编程:

1)发送数据:在“指令框(Instructions)”中找到"通信处理器(communication processor)"-"PtP link:CP340",选择"P_Send(Send data)"

9.jpeg

编程界面STL语言的显示如下:

2.png

这里包含了输入参数和输出参数,我们来详细介绍下各个参数的含义:

1.1)输入参数:

1.11)REQ:请求发送数据(上升沿);

1.12)R:取消发送数据的请求,锁闭发送功能;

1.13)LADDR:CP340的地址,需要跟硬件组态相一致;

1.14)DB_NO:数据块号,不能为0;

1.15)DBB_NO:数据块字节号,范围从0到8190;

1.16)LEN:发送的数据长度,以字节为单位,范围从1到1024;

1.2)输出参数:

1.21)DONE:传输完成且没有错误(STATUS==16#00)

1.22)ERROR:传输未完成,有错误发送,错误信息存放在STATUS参数中;

1.23)STATUS:状态值,若ERROR==1,STATUS包含错误的代码;

2)接收数据:

接收数据使用功能块"P_RCV",如下图:

10.jpeg
同样的我们介绍下功能块的输入和输出参数:

2.1)输入参数

2.11)EN_R:使能数据读取功能;

2.12)R:取消数据读取;

2.13)LADDR:CP340的地址,需要跟硬件组态相一致;

2.14)DB_NO:数据块号,不能为0;

2.15)DBB_NO:数据块字节号,范围从0到8190;

2.2)输出参数:

2.2.1)NDR:读取到新数据且没有错误;

2.2.2)ERROR:读取工作未完成,有错误发送,错误号存在STATUS中;

2.2.3)LEN:读取到的数据的长度,以字节为单位,范围从1到1024;

2.23)STATUS:状态值,若ERROR==1,STATUS包含错误的代码;


发送和读取过程中的错误代码(部分)如下图:

11.jpeg

    到这里,我们已经把CP340的模块的分类,硬件的组态和软件的编程都给大家介绍完毕了,接下来我们用对比的方法简单介绍下CP341。

    可以说CP340是S7-300/400系列PLC串行通信的比较经济的解决方案,它能够满足工业环境中比较简单的串行通信的需求,也相对便宜(大约人民币2600元左右);但是它的速度比较慢,最大波特率为9600baud,而且不支持Modbus协议;

    CP341是CP340的升级版,它除了支持CP340的三种通信协议(ASCII,9364R,printer)外,还支持Modbus和RK512,支持的最大波特率为115200 baud。当然,价格也相对贵一些(大约人民币3600元左右)。

    西门子同样根据串行电气接口的不同,把CP341分成三种类型,其订货号如下图:

3.png

    关于接线、硬件组态和软件编程,CP341和CP340是类似的,可以参考上述对CP340介绍的方法。

    好啦,今天我们就先聊到这里了,希望读过这篇文章后你能有很多的收获。下一篇文章我们将介绍ET200S的串行模块 1SI,不见不散哦。

     长按扫描下面的二维码,关注“方正智芯”的原创文章,提供工业控制领域的技术和经验的分享,持续关注,持续进步

点击这里下载本文的PDF版本:

已经过安全软件检测无毒,请您放心下载。

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论