有源 RS 485 端接电阻用来终接总线段。电源与站无关。终端电阻是单独由其它I/O部件持久地供电或用上游I/O引出的电压。在终接总线系统时,可以有选择地耦合和去耦合站(例如 ET 200S),而不会引起故障。
有源 RS 485 终端元件用于对 PROFIBUS 实施终接,从而确保 RS 485 信号的规定水平并抑制线路反射。由于是单独运行,与现场设备无关,因此可以无反应地从总线中断开。
SIEMENS上海朕锌电气设备有限公司
l 本公司代理西门子全系列产品,原装 罚十、并享受西门子免费一年保修
l 联系人 : 张先生
l 移动手机 :
l 公司电话 :
l 企业Q Q :1287379777
西门子采购渠道给您放心品质
主营:数控系统,S7-200PLC S7-300PLC S7-400PLC S7-1200PLC 6ES5 ET200 人机界面,触摸屏变频器,DP总线,MM420 变频器MM430 变频器MM440 6SE70交流工程调速变频器 6RA70直流调速装置 SITOP电源,电线电缆,数控备件,伺服电机等工控产品,我们在价格上有较大优势,更注重售后服务,现有大量现货销售,欢迎您来电咨询。上海朕锌自动化控制设备有限公司,代理西门子系列产品,原装,罚十。
我公司是西门子数控系统和驱动产品销售、服务、培训的工程服务公司,公司的核心销售及技术人员均由前西门子员工组成,能为用户提供高效的服务。
欢迎您来电咨询高品质西门子驱动和自动化产品价格.
公司销售的产品全部由西门子直接提供,所有产品保证原装,每个产品都可以到西门子办事处去查验.我们出售的产品按照西门子质保进行保修,(保修期为一年)
恭候您的来电!
line;color:#333333;background-color:#FFFFFF;">
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通讯。
line;color:#333333;background-color:#FFFFFF;">
2.PLC侧组态和设置
line;color:#333333;background-color:#FFFFFF;">
2.1参数化CP341模板:
新建STEP 7项目,在硬件组态窗口中插入CPU和CP341模块,双击CP341模板,打开CP341模板的属性窗口:
line;color:#333333;background-color:#FFFFFF;">
图1 CP341模块属性窗口
line;color:#333333;background-color:#FFFFFF;"> 点击属性窗口上的Parameters按钮:
line;color:#333333;background-color:#FFFFFF;">
图2 协议选择
line;color:#333333;background-color:#FFFFFF;"> 选择ASCII协议,双击信封图标:
line;color:#333333;background-color:#FFFFFF;">
图3 协议参数设置
line;color:#333333;background-color:#FFFFFF;"> 弹出ASCII协议通讯参数设置窗口,保持默认值:9600 bit/s, 8 data bits, 1 stop bit, even parity。对硬件组态存盘编译,下载硬件组态。
line;color:#333333;background-color:#FFFFFF;">
2.2 编写通讯程序:
在安装完串口通讯的驱动程序后,可在PLC程序库中找到用于串口通讯的程序:
line;color:#333333;background-color:#FFFFFF;">
图4 串口通讯程序块
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 在OB1调用FB7实现字符收发功能:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
EN_R为TRUE时始能接收
在OB35中调用FB8实现字符发送功能
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 其中REQ需要正跳沿来触发通讯。
line;color:#333333;background-color:#FFFFFF;">
3.SIMOTION侧组态与编程
line;color:#333333;background-color:#FFFFFF;">
3.1 硬件组态
在SIMOTION打开所建立的STEP 7项目,插入D435,建立一个DP网络,并在网络中添加一个ET200M站,并在ET200M站中插入CP341
line;color:#333333;background-color:#FFFFFF;">
图5 SIMOTION侧硬件组态
line;color:#333333;background-color:#FFFFFF;"> 然后对CP341进行参数化,过程和PLC中完全相同。
line;color:#333333;background-color:#FFFFFF;"> 3.2 软件编程
line;color:#333333;background-color:#FFFFFF;">
3.2.1程序块介绍
SIMOTION中的串行通讯程序是集成在标准库里的,无需安装相应的驱动,如下:
line;color:#333333;background-color:#FFFFFF;">
图6 SIMOTION串口通讯程序块
line;color:#333333;background-color:#FFFFFF;">
_CP341_send用于数据的发送。
_CP341_send的参数含义如表1所示。
line;color:#333333;background-color:#FFFFFF;"> 表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标志启动完成 |
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> _CP341_receive用于数据的接收,其参数含义表2所示
line;color:#333333;background-color:#FFFFFF;"> 表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启动状态标志位 |
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> _CP341_send和_CP341_receive必须在BackgroundTask或TimerInterruptTask中循环调用,如果不循环调用发送请求或接收请求无法执行。不能在SystemInterruptTask中调用,也不在IPOSynchronousTask等同步任务中调用。_CP341_send和_CP341_receive必须在CP卡初始化完成以后进行。
line;color:#333333;background-color:#FFFFFF;"> 3.2.2 SIMOTION编程
line;color:#333333;background-color:#FFFFFF;"> 首先需要建立两个数组型的IO变量,对应CP的相应地址,为16个字输入,16个字输出:
line;color:#333333;background-color:#FFFFFF;">
图7 IO变量定义
line;color:#333333;background-color:#FFFFFF;"> 然后插入1个ST程序单元E_CP341
line;color:#333333;background-color:#FFFFFF;"> 在Unit单元的Interface中定义如下的全局变量:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 同时定义三个程序:初始化程序,主程序和故障处理程序:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 在StartUpCP341对接收数据区清零,定义发送长度:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 主程序包括发送程序和接收程序以及故障诊断程序:
line;color:#333333;background-color:#FFFFFF;"> 发送程序如下:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 接收程序如下:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 故障诊断程序如下:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 由于发送需要上升沿,可编写如下程序,并在时间中断中周期性调用以产生正跳沿:
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;">
line;color:#333333;background-color:#FFFFFF;"> 3.3 程序结构
line;color:#333333;background-color:#FFFFFF;"> 程序结构如下,在StartupTask中调用初始化程序,在背景任务中调用主程序,在时间中断程序中调用发送标志位,在外设故障任务中调用故障处理程序:
line;color:#333333;background-color:#FFFFFF;">
图7 SIMOTION程序结构
line;color:#333333;background-color:#FFFFFF;">
4 实际通讯数据监控
line;color:#333333;background-color:#FFFFFF;"> PLC中数据监控
line;color:#333333;background-color:#FFFFFF;">
图7 PLC侧数据监控
line;color:#333333;background-color:#FFFFFF;"> 在SIMOTION中建立相应的变量表来进行数据监控:
line;color:#333333;background-color:#FFFFFF;">
图8 SIMOTION建立变量表
line;color:#333333;background-color:#FFFFFF;"> 分别建立发送和接收的监控表,然后将相应的全局变量加到变量表中,如下图:
line;color:#333333;background-color:#FFFFFF;">
图9 SIMOTION在变量表中添加变量
line;color:#333333;background-color:#FFFFFF;"> SIMOTION接收数据监控:
line;color:#333333;background-color:#FFFFFF;">
图10 SIMOTION接收数据监控
line;color:#333333;background-color:#FFFFFF;"> SIMOTION 发送程序监控:
line;color:#333333;background-color:#FFFFFF;">
图11 SIMOTION发送数据监控
line;color:#333333;background-color:#FFFFFF;"> 对接收到数据进行Trace:
line;color:#333333;background-color:#FFFFFF;">
图12 接收数据Trace记录
line;color:#333333;background-color:#FFFFFF;"> 可以看接收数据长度的值和接收数据标志位只保持一个Cycle即被复位。