QQ登录

只需一步,快速开始

西门子Simotion 串口通讯入门

[ 复制链接 ]
本帖最后由 baikhgmv 于 2016-11-15 09:03 编辑

Simotion 串口通讯入门
请点击此处下载

查看状态:已购买或有权限

您的用户组是:游客

文件名称:西门子Simotion 串口通讯入门.zip 
文件大小:951.52 KB 
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


1.串口通讯介绍
CP340/CP34模块是西门子S7-300系列PLC中的串行通讯模块,这些模块具有1个串行通讯口(RS232C或TTY或RS485/422)。可以使用这种通讯模块实现S7-300与其他串行通讯设备的数据交换。同样,将PLC功能和运动控制器结合起来的SIMOTION也可以支持CP340和CP341
对于SIMTOIN C,CP340/341可以直接通过背板总线相连。对于SIMOTION P和SIMOTION D,可以带ET200M作为其远程IO,而ET200M上可以带CP340和CP341,因而也可以通过CP340和CP341进行串行通讯。
与s7-300相比较,SIMOTION目前还不支持“MODBUS”和“DATA HIGHWAY”通讯,其它功能和PLC类似。
软件版本要求:
SIMOTION SCOUT V4.0或更高
SIMOTION Kernel V4.0或更高
SIMOTION technology packages V4.0 或更高
本文将以SIMOTION和S7-300之间利用CP341进行通讯为例,介绍SIMOTION中如何实现Point-to-Point通讯。


2.PLC侧组态和设置

2.1参数化CP341模板:
新建STEP 7项目,在硬件组态窗口中插入CPU和CP341模块,双击CP341模板,打开CP341模板的属性窗口:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图1 CP341模块属性窗口

点击属性窗口上的Parameters按钮:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图2 协议选择

选择ASCII协议,双击信封图标:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图3 协议参数设置

弹出ASCII协议通讯参数设置窗口,保持默认值:9600 bit/s, 8 data bits, 1 stop bit, even parity。对硬件组态存盘编译,下载硬件组态。

2.2 编写通讯程序:
在安装完串口通讯的驱动程序后,可在PLC程序库中找到用于串口通讯的程序:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门

图4 串口通讯程序块


在OB1调用FB7实现字符收发功能:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


EN_R为TRUE时始能接收
在OB35中调用FB8实现字符发送功能

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门

其中REQ需要正跳沿来触发通讯。


3.SIMOTION侧组态与编程

3.1 硬件组态
在SIMOTION打开所建立的STEP 7项目,插入D435,建立一个DP网络,并在网络中添加一个ET200M站,并在ET200M站中插入CP341

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门

图5 SIMOTION侧硬件组态

然后对CP341进行参数化,过程和PLC中完全相同。

3.2 软件编程

3.2.1程序块介绍
SIMOTION中的串行通讯程序是集成在标准库里的,无需安装相应的驱动,如下:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门

图6 SIMOTION串口通讯程序块

_CP341_send用于数据的发送。
_CP341_send的参数含义如表1所示。

表1 _CP341_send功能块参数含义

参数名
输入
数据类型
含义
输出
execute
IN
BOOL
触发发送,上升沿有效
reset
IN
BOOL
True时表示取消当前发送
moduleAddress
IN
DINT
模块地址
dataOffset
IN
UDINT
第一字节的位置偏差
dataLength
IN
UDINT
发送的数据长度
periIn
IN
ARRAY [0..15]
用于CP卡IO输入的背景数据块
of BYTE
periOut
IN/OUT
ARRAY [0..15]
of BYTE
用于CP卡IO输出的背景数据块
data
IN/OUT
ARRAY [0.0.1023]
发送的数据区
of BYTE
done
OUT
BOOL
完成标志位
error
OUT
BOOL
错误标志位
errorID
OUT
WORD
故障详细信息,如果error=TRUE,
那么errorID 中将显示事件等级和故障号
errorIdTransfer
OUT
DINT
数据传送给CP卡时产生故障(如果errorID中显示16#1E0F时,那么errorIdTransfer中会有更详细的诊断信息
startup
OUT
BOOL
CP启动完成标志位,为False标志启动完成

_CP341_receive用于数据的接收,其参数含义表2所示

表2 _CP341_received功能块参数含义

参数名
输入
数据类型
含义
输出
enable
IN
BOOL
接收使能
reset
IN
BOOL
取消接收
moduleAddress
IN
DINT
模块地址
dataOffset
IN
UDINT
第一字节的位置偏差
periIn
IN
ARRAY[0..15]
用于CP卡IO输入的背景数据块
of BYTE
periOut
IN/OUT
ARRAY[0..15]
of BYTE
用于CP卡IO输出的背景数据块
dataCl3964
IN/OUT
ARRAY[0.0.1023]
接收数据区
of BYTE
dataCl512
IN/OUT
ARRAY[0..6] of
RK 512 的数据区
Struct_CP341
_Cl512Data
comFlags
IN/OUT
ARRAY [0 to 31]
RK 512通讯标志
of BYTE
newDataReceived
OUT
BOOL
新数据接收标志位
error
OUT
BOOL
错误标志位
dataLength
OUT
UDINT
接收长度
errorID
OUT
WORD
故障详情,如果error=TRUE,
那么errorID 中将显示 事件等级和故障
errorIdTransfer
OUT
DINT
数据传送给CP卡时产生故障(如果errorID中
显示16#1E0F时,那么时会有更详细的诊断信息
startup
OUT
BOOL
CP启动状态标志位

_CP341_send和_CP341_receive必须在BackgroundTask或TimerInterruptTask中循环调用,如果不循环调用发送请求或接收请求无法执行。不能在SystemInterruptTask中调用,也不推荐在IPOSynchronousTask等同步任务中调用。_CP341_send和_CP341_receive必须在CP卡初始化完成以后进行。

3.2.2 SIMOTION编程

首先需要建立两个数组型的IO变量,对应CP的相应地址,为16个字输入,16个字输出:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门

图7 IO变量定义

然后插入1个ST程序单元E_CP341

在Unit单元的Interface中定义如下的全局变量:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


同时定义三个程序:初始化程序,主程序和故障处理程序:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


在StartUpCP341对接收数据区清零,定义发送长度:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


主程序包括发送程序和接收程序以及故障诊断程序:

发送程序如下:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


接收程序如下:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


故障诊断程序如下:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


由于发送需要上升沿,可编写如下程序,并在时间中断中周期性调用以产生正跳沿:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门


3.3 程序结构

程序结构如下,在StartupTask中调用初始化程序,在背景任务中调用主程序,在时间中断程序中调用发送标志位,在外设故障任务中调用故障处理程序:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门

图7 SIMOTION程序结构


4 实际通讯数据监控

PLC中数据监控

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图7 PLC侧数据监控

在SIMOTION中建立相应的变量表来进行数据监控:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图8 SIMOTION建立变量表

分别建立发送和接收的监控表,然后将相应的全局变量加到变量表中,如下图:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图9 SIMOTION在变量表中添加变量

SIMOTION接收数据监控:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图10 SIMOTION接收数据监控

SIMOTION 发送程序监控:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图11 SIMOTION发送数据监控

对接收到数据进行Trace:

西门子Simotion 串口通讯入门

西门子Simotion 串口通讯入门
图12 接收数据Trace记录

可以看接收数据长度的值和接收数据标志位只保持一个Cycle即被复位。





回复

使用道具 举报

快速回复 返回列表 客服中心 搜索