实现S-SMART自由口通讯

合集下载

IFIX与SSMART通信步骤

IFIX与SSMART通信步骤

IFIX与SSMART通信步骤IFIX和SSMART是两个用于工业自动化系统的软件平台,它们可以通过通信来实现数据的传输与共享。

下面是IFIX与SSMART通信的步骤:1. 确定通信协议:首先需要确定IFIX和SSMART之间的通信协议,常用的通信协议有Modbus、OPC等。

根据实际需求,选择适合的通信协议进行通信。

2.配置IFIX和SSMART的通信设置:通过IFIX和SSMART提供的配置工具,设置通信参数。

这些参数包括通信端口、通信速率、通信协议类型等。

确保IFIX和SSMART可以正确地建立通信连接。

4.配置SSMART设备连接:在SSMART中,需要配置设备连接来接收IFIX传输的数据。

可以通过SSMART提供的设备连接配置工具,设置设备连接的名称、地址、通信协议等。

6.测试通信连接:在配置完成后,需要测试IFIX和SSMART之间的通信连接是否正常。

可以通过模拟数据或实际数据来进行测试,确保数据能够正常传输。

7.监控和调试:在实际应用中,需要监控和调试通信过程中的问题。

可以使用IFIX和SSMART提供的监控工具,查看通信状态、数据传输情况等,并进行故障排查和调试。

8.数据传输和处理:在通信连接正常后,IFIX会按照配置的数据采集间隔或触发条件,从数据源中采集数据,并通过通信协议将数据传输给SSMART。

SSMART接收到数据后,可以进行数据分析、处理和存储等操作。

9.故障处理与维护:在实际使用中,可能会遇到通信故障或其他问题。

需要及时处理故障,确保通信正常运行。

同时,定期进行维护和检查,确保通信连接的可靠性和稳定性。

总结:IFIX与SSMART通信的步骤包括确定通信协议、配置通信设置、配置数据源和设备连接、测试通信连接、监控和调试、数据传输和处理、故障处理与维护等。

通过以上步骤,可以实现IFIX和SSMART之间的数据传输与共享,提高工业自动化系统的效率和可靠性。

S SMART 通讯常见问题

S SMART 通讯常见问题

一:S7-200 SMART 通信协议与资源每个S7-200 SMART CPU 都提供一个以太网端口和一个RS485 端口(端口0),标准型CPU 额外支持SB CM01 信号板(端口1),信号板可通过STEP 7-Micro/WIN SMART 软件组态为RS232 通信端口或RS485 通信端口。

S7-200 SMART CPU 可实现CPU、编程设备和HMI(人机界面)之间的多种通信:?以太网:● CPU 与STEP 7-Micro/WIN SMART 软件之间的数据交换。

● CPU 与HMI 之间的数据交换。

● CPU 与其它S7-200 SMART CPU 之间的GET/PUT 通信。

● CPU 与第三方设备之间的Open IE( TCP、ISO on TCP、UDP) 通信。

RS485/RS232:● CPU 与HMI 之间的数据交换(PPI协议)。

● CPU 使用自由端口模式与其它设备之间的串行通信(例如:XMT/RCV 通信、Modbus RTU通信、USS通信等)。

S7-200 SMART CPU 可同时支持的最大通信连接资源数如下:以太网:● 1 个连接用于与STEP 7-Micro/WIN SMART 软件的通信。

● 8 个连接用于CPU 与HMI 之间的通信。

● 8 个连接用于CPU 与其它S7-200 SMART CPU 之间的GET/PUT 主动连接。

● 8 个连接用于CPU 与其它S7-200 SMART CPU 之间的GET/PUT 被动连接。

● 8 个连接用于CPU 与第三方设备之间的Open IE主动连接。

● 8 个连接用于CPU 与第三方设备之间的Open IE被动连接。

RS485/RS232:● 4 个连接用于CPU 与HMI 之间的通信(PPI协议)。

注意:●S7-200 SMART CPU以太网通信端口从版本开始支持TCP、UDP和ISO on TCP等开放式用户通信及Modbus TCP通信。

【电气工控自动化】S7-200 SMART与V20变频器进行自由口通信

【电气工控自动化】S7-200 SMART与V20变频器进行自由口通信

S7-200 SMART与V20变频器进行自由口通信学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:1)modbus RTU通信2)PPI协议通信3)USS协议通信4)自由口通信何为自由口通信呢?前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。

自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。

很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。

为此我总结了自由口通信的基本步骤:1)读懂对方的数据格式。

串行通信中,数据是一位一位的进行发送,也就是0和1。

为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。

图1-1我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。

Modbus RTU代码系统如下:·1个起始位。

·7或8个数据位,最小的有效位先发送。

·1个奇偶校验位,设成无校验则没有。

·1个停止位(有校验时),2个Bit(无校验时)。

数据格式的描述如下表:11-bit字符帧(BITl-BIT8为数据位):起始位Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8校验位停止位10-bit字符帧(BITl-BIT7为数据位):起始位Bit1Bit2Bit3Bit4Bit5Bit6Bit7校验位停止位通信中要保证通信双方要有相同的波特率,数据格式,奇偶校验位。

波特率:通信速度,每秒中发送的位的个数,单位为Bit/S或bps。

如何实现S7-200SMART自由口通讯

如何实现S7-200SMART自由口通讯

怎么样真止S7-200SMART自由心通讯之阳早格格创做自由心通讯协议的闭键条件定义开初接支消息战停止接支消息的条件.1、空忙线检测:树坐il=1,sc=0,bk=0,smw90/smw190>0空忙线条件定义为传输线路上的宁静大概者空忙的时间.SMW90/SMW190中是以ms为单位的空忙时间.正在该办法下,从真止接支指令开初起动空忙时间检测.正在传输线空忙的时间大于等于SMW90/SMW190中设定的时间之后接支的第一个字符动做新疑息的起初字符.接支消息功能将会忽略正在空忙时间到达之前接支到的所有字符,并会正在每个字符后里沉新开用空忙线定时器.空忙线时间应大于以指定波特率传递一个字符所需要的时间.空忙线时间的典型为以指定的波特率传递3个字符所需要的时间.传输速率为19200bit/s时间,可树坐空忙时间为2ms.对付于两进造协议,不特定起初字符的协议大概指定了消息之间最小时间隔断的协议,不妨将空忙线检测用做开初条件.2、起初字符检测:树坐il=0,sc=1,bk=0,忽略smw90/smw190起初字符是消息的第一个字符,以SMB88/SMB188中的起初字符动做接支到的消息开初的标记.接支消息功能忽略起初字符之前支到的字符,起初字符战起初字符之后支到的所有字符皆保存正在消息慢冲区中.起初字符检测普遍用于ASCII协议.3、空忙线战起初字符:树坐il=1,sc=1,bk=0,SMW90/SMW190大于0谦脚空忙线条件之后,接支消息功能查找指定的起初字符.如果接支到的字符不是smB88/smb188指定的起初字符,将开初沉新检测空忙线条件.正在谦脚空忙线条件之前接支到的以及起初字符之前接支到的字符皆将会被忽略.那种办法更加符合用于通讯链路上有多台设备的情况.4 、break检测:树坐il=0,sc=0,bk=1,检测smw90/smw190战smb88/smb188以接支到的break(断开)动做接支消息的开初.当接支到的数据脆持为0的时间大于完备字符(包罗起初位,数据位,奇奇校验位战停止位)传输的时间,表示检测到break.断开条件之前接支到的字符将忽略,断开条件之后接支到的任性字符皆市保存正在消息慢冲区中.5、break战起初字符:il=0,sc=1,bk=1,忽略smw90/smw190断开条件谦脚后,接支消息功能将查找指定的起初字符.如果接支到的字符不是起初字符,将沉新搜索断开条件.所有正在断开条件谦脚之前正在接支到起初字符之前接支的字符皆市忽略.起初字符战所有后绝字符所有存进消息慢冲区6、所有字符开初担当:树坐il=1,sc=0,bk=0,smw90/smw190=0忽略smb88/smb188中的起初字符.应为smw90/smw190中的空忙线时间为0,接支指令已经真止,便将坐时开初强造接支所有的任性字符,并将存进消息慢冲区.7、任性字符开初,消息定时器超出则中断接支消息:令il = 1,sc = 0,bk = 0,smw90/smw190 = 0,忽略smb88/smb188中的起初字符.以上树坐用于真止从任性字符开初接支消息.别的树坐c/m = 1,tmr =1,用smw92/smw192树坐以ms为单位的消息超常常间,用消息定时器监视接支是可超时.如果已谦脚其余中断条件,正在消息定时器超时的时间,将会末止接支消息功能.那对付自由心协议的主站利害常有用的.定义通讯的传输速度战模式SMB30=16#05=2# 00 0 001 01其中从下位到矮位依次:00:表示无校验0:表示8个数据位001:表示波特率1920001:表示自由心通讯定义接支消息统造字节SMB87=16#FC = 2#1111 1100其中从下位到矮位依次:en=1:开用担当消息功能sc=1:使用SMB88 的值监测数据的起初ec=1:使用SMB89 的值监测数据的末止il=1:使用SMW90 的值监测空忙条件c/m=1:定时器为消息定时器tmr=1:超出SMW92 中的时间段,则末止接支bk=0:忽略中断条件SM87.0=0 (无效)3.定义SMB88、SMB89、SMW90、SMW92、SMB94SMB88:定义开初字符为 2ASMB89:定义中断字符为 0ASMW90:空忙线时间段,单位:MSSMW92:消息定时器的超时值(单位:MS),若超出该时间段,则停止担当消息SMB94:要担当的最大字符数(1--255个字节);纵然已使用字符计数消息末止,此范畴也必须树坐为所需的最大数据接换区l SMW90=1000000us/19200 *11*3其中:1000000/19200得到传输1个位需要多万古间,一个字符11个位,检测空忙3.5个字符,约等于3个字符l SMW92=1000000us/19200 *11*20*1.5TBL:5.对接担当完毕中断战收支完毕中断,而且开搁中断6.接支完毕中断:由于咱们使用的RS485转USB的线缆是半单工,收支战接支需要隔断起码5ms的时间.所以接支完毕后先延时5ms正在收支.7.SMB34定时中断:延常常间到,真止收支指令,把先期接支到的数据再收支给PC.8.收支完毕中断:。

SSMART串口通讯和ID调节

SSMART串口通讯和ID调节

S7-200S M A R T串口通讯
2014-9-2
通过反复测试都没成功,后来发现做为连接RS485通讯的串口接头焊得有问题,应该是3+,8-,而实际悍成了7-,所以无法通讯,重焊后进行测试通讯成功。

1.主站简单测试程序
2.主站例程测试modbus_master_st40.smart
●保持寄存器读入
●开关量读入:
●开关量军写出:
●写入寄存器
Addr读写从站的数据地址:选择读写的数据类型
00001至0xxxx-开关量输出
10001至1xxxx-开关量输入
30001至3xxxx-模拟量输入
40001至4xxxx-保持寄存器
3.做为从站:
保持寄存器读取
通道值采集AIW16(第一个扩展AM06第一通道)
开关量输入点读取
当I0.0为1时
开关量输出点
通过测试发现,做从站时不能直接读取AQW通道的值和M寄存器中的值,技术支持建议所有需要传送的数据全部放在V区的连续寄存器中,只需要一个指令就可以全部读取,然后再解析就可以了。

4.PID调节
●设置向导中设置参数,
●调用设置好的PID子程序.
●调试
●发现AO的输出通道灯和DIAG灯报错(红灯),是因为没有接线的缘故,将通
道接到ADAM4017+的第二通道上后就正常了,显示绿灯。

●采集到的数据如下:
●在“工具”下面有PID控制面板,可以用于调试PID参数,观察调节变化曲
线。

西门子PLC 自由口通讯

西门子PLC 自由口通讯

1.自由口通讯基本概念1.1 自由口通信概述1.2 自由口通信要点1.3 发送和接收指令2.自由口通信使用指南2.1 通讯口初始化2.2 发送数据:2.3 接收数据2.4 自由口通信例程1.自由口通讯基本概念1.1 自由口通信概述S7-200PLC的通讯口支持RS485接口标准。

采用正负两根信号线作为传输线路。

工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。

数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。

字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。

字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。

字符传输时间取决于波特率。

数据发送可以是连续的也可以是断续的。

所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。

而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。

示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。

如图所示,当数据线上没有字符发送时总线处于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。

S SMART CPU与S 进行TCP通信 SMART做客户端

S SMART CPU与S 进行TCP通信 SMART做客户端

S7-200 SMART 与S7-1200 之间TCP 通信— S7-200 SMART 作为客户端TCP 协议通信TCP 通信为面向连接的通信,需要双方都调用指令以建立连接及交换数据。

S7-200 SMART 与S7-1200 通过TCP 通信,在S7-1200 调用T-block 指令( TCON, TDISCON, TSEND, TRCV ) ,在S7-200 SMART 调用Open User Communication 库指令( TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV) 。

双方的发送和接收指令必须成对出现。

客户端:主动建立连接,可以理解为主站;服务器:被动建立连接,可以理解为从站。

?注意:S7-200 SMART 在CPU 硬件固件及编程软件版本均升级到之后才开始支持开放式通信。

编程软件版本低于,无Open User Communication 库指令;硬件固件低于,硬件不支持开放式通信协议。

S7-200 SMART TCP 连接资源:8个主动连接资源,8个被动连接资源S7-200 SMART TCP 通信数据量:1024 字节硬件和软件需求及所完成的通信任务硬件:?① S7-1200 CPU (IP 地址;子网掩码)② S7-200 SMART CPU (固件版本) ( IP 地址;子网掩码)③ PC (带以太网卡)④ TP 以太网电缆?软件:① STEP7 V13 SP1 Upd 9② STEP 7 Micro/WIN SMART (软件版本)?所完成的通信任务:① S7-200 SMART 发送10 个字节数据:(S7-200 SMART 侧)VB0~VB9 --> (S7-1200侧)~② S7-200 SMART 接收10 个字节数据:( S7-200 SMART 侧)VB2000~VB2009<--?(S7-1200 侧)?~ S7-200 SMART侧编程( 客户机侧组态编程)1.打开STEP 7 Micro/WIN SMART>项目树>指令树>库>Open User Communication?,调用TCP_CONNECT,如图1所示。

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历初次试探自由口通信,从PLC读仪表数据开始,当时有一套比较老的设备,仪表是国外的,自定义的协议,国内集成商可能是仪表和接口板卡开发比较熟悉,或许是为了满足客户不同的PLC品牌需求,没有采用PLC和仪表直接通信,而是做了一块接口板,接口板和PLC之间采用数字量模式(对于PLC一侧DI 1 / DO 8+3+1+1),接口板和仪表之间采用RS232C通信。

PLC8个输出点相当于并口,3个输出点相当于读写参数编号,1个读写指令点,1个高低位指令点。

一同事有点高级语言的底子,用VB作了一个简单的读参数测试,可以接收到消息串。

于是本人饶有兴趣想试试PLC直接和仪表进行通信,翻看仪表的自定义协议,信息帧均是有指定的起始符和结束符,后面没有校验字符,现在回忆当时情况感觉还是有点幸运,如果校验复杂一点,可能就失去了继续深入的耐性了。

对照S7-200的系统手册,看XMT和RCV的指令介绍,当时对于通信指令和中断指令都不甚明了,需要一点点尝试,终于有点眉目,能够成功的读取一个参数,后来在慢慢的加入逻辑,读取多个参数,对于RCV接收机制和指令使用太过生疏,加上对中断也没有深入的概念,容易出现断线且无法恢复,后来逐渐加了一些重发之类的逻辑,形成了一个逻辑繁琐可读性极差的初级版本。

后来有一个需求,有用户使用了多套年岁较高的纺织机械,之前用的是西门子变频器和S7-200,西门子变频器老型号停产,需要更换新的型号,因为是基于通信给定频率,即使是更换西门子的新型号,也需要变动PLC频率给定部分的程序,用户干脆在一台机器上换了富士的变频器,找厂家改动了程序,后来有某国产变频器经销商想说服用户更换他家的变频器,用户答应给试机的机会,不过需要经销商来适配PLC程序,经过辗转,一同学找我给点建议,本人对通信的经验实在是可怜,不敢乱说,只能说程序是可以适配,但水平有限,经验不够,还是另找高手实施。

如何实现SSMRT自由口通讯

如何实现SSMRT自由口通讯

如何实现S S M R T自由口通讯RUSER redacted on the night of December 17,2020如何实现S7-200SMART自由口通讯自由口通讯协议的关键条件定义开始接收消息和停止接收消息的条件。

1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0空闲线条件定义为传输线路上的安静或者空闲的时间。

SMW90/SMW190中是以ms 为单位的空闲时间。

在该方式下,从执行接收指令开始起动空闲时间检测。

在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。

接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。

空闲线时间应大于以指定波特率传送一个字符所需要的时间。

空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。

传输速率为19200bit/s时候,可设置空闲时间为2ms。

对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。

2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。

接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。

起始字符检测一般用于ASCII协议。

3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0满足空闲线条件之后,接收消息功能查找指定的起始字符。

如果接收到的字符不是smB88/smb188指定的起始字符,将开始重新检测空闲线条件。

在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。

这种方式尤其适合用于通讯链路上有多台设备的情况。

4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188以接收到的break(断开)作为接收消息的开始。

详细介绍S7-200SMART的自由口通信

详细介绍S7-200SMART的自由口通信

详细介绍S7-200SMART的自由口通信
学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:
1)modbus RTU通信
2)PPI协议通信
3)USS协议通信
4)自由口通信
何为自由口通信呢?
前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。

自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。

很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。

为此我总结了自由口通信的基本步骤:
1)读懂对方的数据格式。

串行通信中,数据是一位一位的进行发送,也就是0和1。

为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。

图1-1
我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。

ModbusRTU代码系统如下:
·1个起始位。

·7或8个数据位,最小的有效位先发送。

Ssmart之间LC通信

Ssmart之间LC通信

S7-200 SMART PLC之间的以太网通信S7-200SMART PLC是西门子公司经过大量的市场调研,针对中国市场推出的一款高性价比的小型PLC产品,其大体的使用与S7-200的PLC差不多。

这里我们主要说说他们之间不一样的地方。

S7-200PLC要实现PLC与PLC之间的通信,可以使用PPI进行数据的交换,但是对于S 7-200SMART的PLC来说PLC上自带的485通信口不支持PPI通信,如果我们需要通过这个485口实现S7-200SMART PLC之间的数据交换,那么我们可以通过这个口来做MODBU S通信,一个作为MODBUS主站,一个作为MODBUS从站,来进行数据交换。

如果两个PLC作为MODBUS通信来实现PLC与PLC之间的数据交换的或工作量会比较大,那么S7-200SMART PLC对于S7-200的PLC来说他有一个优势,就是在PLC的基本单元上带有一个以太网口,我们可以使用这个以太网口来实现S7-200SMART PLC之间是数据交换,使用以太网通信可以实现8台PLC之间的数据交换。

使用以太网实现S7-200SMART PLC之间的数据交换主要有以下几个步骤:第一步,对PLC进行硬件组态,配置好每一个PLC的IP地址,使需要通信的PLC在同一个网络。

择向导里面的GET/PUT操作,进行需要通信数据的组态,配置向导的工作只需要在本地站(主要在远程站(从站)进行。

如图第三步,选择第一操作(operation)进行数据交换的组态。

2014-7-15 11:06 上传以同样的方法配置另外的一个操作,类型可以选择为PUT类型。

第四步、分配建议地址第五步、向导成后,在本地站中调用生成的子程序。

超时:通信超时时间100表示为100s周期:每次所有操作都完成后进行一次切换错误,若出错该位为1注意:子程序要保证每个扫描周期都是用,所用是用SM0.0调用子程。

S与 S SMART 以太网通讯

S与 S SMART 以太网通讯

S7-300与S7-200S M A R T以太网通讯S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。

S7-200SMARTPLCV2.0版本支持SMARTPLC之间的PUT/GET通讯,经过测试发现S7-300/400集成的PN口与S7-200SMARTPLC之间的PUT/GET通讯也是可以成功的,但是需要表1图1调用通信项目功能块图2调用通信系统功能块要通过S7-300/400CPU的集成PROFINET接口实现S7通信,需要在硬件组态中建立连接。

1、硬件及网络组态CPU采用1个314-2PN/DP,1个S7-200SMARTPLC使用以太网进行通信。

在STEP7中创建一个新项目,项目名称为S7-300-SMART。

插入1个S7-300站,在硬件组态中插入CPU314-2PN/DP。

如图3-10所示。

1.1硬件组态1.1.1新建项目首先单击新建项目,名称和存储位置可以自己选择和更改,然后点击确认。

如图3所示。

图3新建项目1.1.2建立SMATC300站点。

首先在导航窗口空白处(或者选择项目)右键选择插入对象,再选择SMATC300站点。

如图4所示图4创建SMATC300站点1.1.3硬件配置双击右窗口硬件进入硬件配置窗口。

具体配置如图5-19所示。

注意:硬件组态的硬件参数必须要和实际的硬件参数相同,否则PLC不能正常工作。

出现异常报警。

图5进入硬件配置窗口图6硬件配置窗口图7选择机架注:(可以右击选择添加或者直接双击进行添加)以下的硬件配置将不予说明。

图8选择电源图9选择CPU注:由于314 C-2PN\DP比较特殊,自带两个以太网PN接口,所以组态时会弹出以太网接口属性设置窗口。

在IP地址栏,键入IP地址,如果使用路由器,选择使用路由器,键入路由器地址,如果是所以普通交换机选择不使用路由器(普通的交换机没有IP地址),设置完后点击新建,进入子网属性设置。

如何通过S与第三方设备实现自由口通信

如何通过S与第三方设备实现自由口通信

文档类型常问问题,条目ID:,文档发布日期2014年4月4日5)(评估如何通过S7-1200与第三方设备实现自由口通信推荐文档: 西门子工程师推荐本文档!文献涉及产品西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,由于其性价比高,所以常被用作小型自动化控制设备的控制器,这也使得它经常与第三方的设备(扫描枪、打印机等设备进行通讯。

因为没有第三方的设备,这里就以超级终端为例介绍自由口通讯。

1.控制系统原理图1:控制系统原理2.硬件需求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 )3.软件需求1) 编程软件 Step7 Basic ( 6ES7 822-0AA0-0YA0)4.组态我们通过下述的实际操作来介绍如何在Step7 Basic 中组态S7-1214C 和超级终端通信。

点击桌面上的“Totally Integrated Automation Portal V10”图标,打开如下图:图2:新建S7 -1200项目首先需要选择“Create new project”选项,然后在“Project name:”里输入PTP;在“Path:”修改项目的存储路径为“C:\”;点击“Create”,这样就创建了一个文件PTP的新项目。

创建后的窗口如下图所示:图3:新建项目后点击门户视图左下角的“Project View”切换到项目视图下,如下图:图4:切换到项目视图打开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名“PLC_1”并在设备列表里选择CPU的类型。

SSMARTCPU与SPN口进行TCP通信SMART做服务器

SSMARTCPU与SPN口进行TCP通信SMART做服务器

SSMARTCPU与SPN口进行TCP通信SMART做服务器
1.确定网络环境:首先,需要确定SSMARTCPU与SPN口之间的网络环境,包括IP地址、子网掩码、网关等信息。

确保两者能够在同一个局域
网中进行通信。

2.配置SMART服务器:在SSMARTCPU中,需要配置SMART作为服务器,以便能够接收来自SPN口的TCP连接请求。

这通常包括设置监听端口、绑
定IP地址等信息。

3.创建套接字:在SSMARTCPU中,需要创建一个套接字,以便能够通
过该套接字进行TCP通信。

套接字是TCP通信的关键,它提供了一种抽象
的接口,使得程序能够通过它来进行网络通信。

4.监听接口:在SSMARTCPU中,需要将套接字绑定到指定的IP地址
和端口,并开始监听该接口,等待SPN口发起TCP连接请求。

5.接收连接请求:一旦SPN口发起了TCP连接请求,SSMARTCPU会接
收到该请求,并可以通过套接字接受该连接。

6.数据交互:一旦TCP连接建立成功,SSMARTCPU和SPN口可以通过
套接字进行数据交互。

SMART作为服务器,可以接收来自SPN口的数据,
并作出相应的处理。

7.断开连接:当完成数据交互后,可以通过套接字来关闭TCP连接,
并释放相关资源。

需要注意的是,以上步骤是在SMART作为服务器的情况下进行的,而SPN口作为客户端需要按照类似的步骤来进行TCP连接。

另外,根据实际
需求,可能还需要进行数据加密、认证等操作,以保证数据的安全性。

SSMART通讯问题—以太网设置

SSMART通讯问题—以太网设置

一:TCP 协议通讯一 S7 200 SMART之间的TCP通讯TCP是一个因特网核心协议。

在通过以太网通信的主机上运行的应用程序之间,TCP 提供了可靠、有序并能够进行错误校验的消息发送功能。

TCP 能保证接收和发送的所有字节内容和顺序完全相同。

TCP 协议在主动设备发起连接的设备和被动设备接受连接的设备之间创建连接。

一旦连接建立,任一方均可发起数据传送。

TCP协议是一种"流"协议。

这意味着消息中不存在结束标志。

所有接收到的消息均被认为是数据流的一部分。

S7 200 SMART与之间的TCP通讯可以通过两边调用OUC 开放式用户通讯指令库中的TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT指令来实现。

图1.开放式用户通讯库开放式用户通信库需要使用 50 个字节的 V 存储器。

开放式的用户通讯连接资源包括8个主动连接和8个被动连接。

只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。

所需条件:1、软件版本:STEP 7-Micro/WIN SMART2、SMART CPU固件版本:3、通讯硬件:TP电缆以太网电缆所完成的通讯任务:将作为客户端的PLC IP地址为中VB0-VB3的数据传送到作为服务器端的PLC IP地址为的VB2000-VB2003中。

S7-200 SMART 客户端编程1、设置本机IP地址在客户端设置IP地址为图2.设置IP地址2、建立TCP连接调用TCP_CONNECT指令建立TCP连接。

设置连接伙伴地址为,远端端口为2001,本地端口为5000,连接标识ID为1。

利用使能Active,设置为主动连接。

图3.调用TCP_CONNECT指令指令的参数输入参数:EN :使能输入Req:沿触发Active :TURE=主动连接客户端FALSE=被动连接服务器ConnID:连接ID为连接标识符,可能范围为0-65534。

有关S7-200SMART PLC 自由口通讯的问题

有关S7-200SMART PLC 自由口通讯的问题

为了能搞明白自由口通讯的原理,我把帮助里面的自由口通讯的示例程序抄写了下来,并且将所有有关P0口的设置更改为P1口的设置程序内容如下:
MAIN
LD First_Scan_On
MOVB 2#1001, P1_Config
MOVB 2#10110000, P1_Ctrl_Rcv
MOVB 2#1010, P1_End_Char
MOVW +5, P1_Idle_Time
MOVB 100, P1_Max_Char
ATCH INT_0, 23
ATCH INT_2, 9
ENI
RCV VB100, 1
INT_0
LDB= P1_Stat_Rcv, 2#100000
MOVB 10, Time_1_Intrvl
ATCH INT_1, 10
CRETI
NOT
RCV VB100, 1
INT_1
LD Always_On
DTCH 10
XMT VB100, 1
INT_2
LD Always_On
RCV VB100, 1
有关PLC的组态和实际情况是一致的。

在测试过程中,我发现,这个程序并不能像帮助里面所说的那样接收到换行符号以后就把内容转发回来,而且这个程序还存在只能在刚下载完程序之后可以接收PC机发给他的数据。

请各位前辈指点!~~
主程序中断绑定不对,端口1 的中断分别是 24 和26;INT0 中,定时中断1 的事件号也不对,应该为11;INT1 中事件端口号也得改为11。

整个流程如下:PLC 启动时开始接收,如果接收成功,等待10ms ,然后发送接收到的报文,发送成功后再使能接收,,。

轮询下去。

一个自由口通信编程的实现流程

一个自由口通信编程的实现流程

一个自由口通信编程的实现流程需求:S7-200smart 通过自由口和2台(多台仪表) 通信。

每台仪表的通信数据:一个过程量(只读),5个参数(读写)。

仪表通信协议:自定义协议,消息字符ASCII码模式,写参数时,无返回消息。

轮询要求:过程量优先读取,最快刷新;参数值定时间隔读取,或者上位机指令读取;参数值有变更需求才写入,工作情况:读写参数 均通过上位机画面操作,正常不会出现多台仪表同时出现写请求,存在操作上的时间差。

构想方案:公用变量:站地址变量,通信状态变量,重试次数(超时次数上限/超限认为掉站),掉站恢复时间(掉站后,重试间隔时间)独占变量:写请求状态字节(每个站地址建一个变量)读请求状态字节(每个站地址建一个变量)超时次数(每个站地址建一个变量)掉站标志位(每个站地址建一个变量)*以上“变量”等同于存储地址1,采用站地址轮询策略:轮询到某个站地址时,先读取过程值,再检查写请求状态字节,是否存在写参数请求,若有,写参数通信,更新读请求状态字节,若没写参数请求,再检查读请求状态字节,是否存在读参数请求,若有,读参数通信,如没有,轮询一个站地址。

即每个站的通信次序为 读过程值--- 写一个参数---读一个参数 。

2,超时处理:轮询到某个站地址,读过程值或者读参数 返回数据没有超时,该站地址超时次数清零,若超时,该站地址超时次数加1,轮询下一个站地址。

3,掉站处理及重新询站:某站地址超时次数超过重试次数,判定掉站,掉站标志置位,下次轮询到该站地址,跳过,轮询下一个站地址。

掉站后,经过重试间隔时间,掉站标志复位,依次进入轮询。

4,读/写请求状态字节 及读/写处理状态字节从低位到高位(位0-位4),不用的位均置零,每一位均表示一个参数的读/写请求标志,当状态字节不为0,即表示本站存在读/写请求。

读/写参数时,从低位向高位查检索,查询到第一个“1”位,本次轮询只对这个参数进行读/写。

5,特别的,仪表在接收写参数消息帧时,没有返回消息,因此有写参数时,必须将该参数的读请求标志也置位,同时清除读参数中的其他标志位。

西门子自由口通讯

西门子自由口通讯

西门子自由口通讯
现在有5台200plc,一个扫描枪,需要把扫描枪的数据发送到其他4个从站cpu里面,现在是用的自由口通讯模式,modbus电脑装不上,知道怎么用中断,但现在纠结的是怎么区分发送信息给哪一个从站,怎么定义从站站号,比如发送的首地址是vb100,定义站号应该是在哪个字节呢?
最佳答案
采用轮询方式,主站主动发,从站被动应答。

例如主站发:aa01打头的报文,四个从站都接收到了,但是只让1号从站将该数据作为有效数据,其他三个从站将接收到的数据作为无效数据。

如果为了通讯可靠,也可以让从站发确认信息,比如1号从站收到上边报文后回:bb01打头的报文,主站收到后确认从站收到数据,其他三个从站不做处理。

S SMART CPU与S 进行TCP通信 SMART做客户端

S SMART CPU与S 进行TCP通信 SMART做客户端

S7-200 SMART 与S7-1200 之间TCP 通信— S7-200 SMART 作为客户端TCP 协议通信TCP 通信为面向连接的通信,需要双方都调用指令以建立连接及交换数据。

S7-200 SMART 与S7-1200 通过TCP 通信,在S7-1200 调用T-block 指令( TCON, TDISCON, TSEND, TRCV ) ,在S7-200 SMART 调用Open User Communication 库指令( TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV) 。

双方的发送和接收指令必须成对出现。

客户端:主动建立连接,可以理解为主站;服务器:被动建立连接,可以理解为从站。

?注意:S7-200 SMART 在CPU 硬件固件及编程软件版本均升级到V2.2 之后才开始支持开放式通信。

编程软件版本低于V2.2,无Open User Communication 库指令;硬件固件低于V2.2,硬件不支持开放式通信协议。

S7-200 SMART TCP 连接资源:8个主动连接资源,8个被动连接资源S7-200 SMART TCP 通信数据量:1024 字节硬件和软件需求及所完成的通信任务硬件:?③ PC (带以太网卡)④ TP 以太网电缆?软件:① STEP7 V13 SP1 Upd 9② STEP 7 Micro/WIN SMART (软件版本V2.2 )?所完成的通信任务:① S7-200 SMART 发送10 个字节数据:(S7-200 SMART 侧)VB0~VB9 --> (S7-1200侧)DB4.DBB10~DB4.DBB19② S7-200 SMART 接收10 个字节数据:( S7-200 SMART 侧)VB2000~VB2009<--?(S7-1200 侧)?DB4.DBB0~DB4.DBB9 S7-200 SMART侧编程( 客户机侧组态编程)1.打开STEP 7 Micro/WIN SMART>项目树>指令树>库>Open User Communication?,调用TCP_CONNECT,如图1所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何实现S-SMART自由口通讯
————————————————————————————————作者:————————————————————————————————日期:
如何实现S7-200SMART自由口通讯
自由口通讯协议的关键条件
定义开始接收消息和停止接收消息的条件。

1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0
空闲线条件定义为传输线路上的安静或者空闲的时间。

SMW90/SMW190中是以ms为单位的空闲时间。

在该方式下,从执行接收指令开始起动空闲时间检测。

在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。

接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。

空闲线时间应大于以指定波特率传送一个字符所需要的时间。

空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。

传输速率为19200bit/s时候,可设置空闲时间为2ms。

对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。

2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190
起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。

接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。

起始字符检测一般用于ASCII协议。

3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0
满足空闲线条件之后,接收消息功能查找指定的起始字符。

如果接收到的字符不是
smB88/smb188指定的起始字符,将开始重新检测空闲线条件。

在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。

这种方式尤其适合用于通讯链路上有多台设备的情况。

4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188以接收到的break(断开)作为接收消息的开始。

当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。

断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。

5、break和起始字符:il=0,sc=1,bk=1,忽略smw90/smw190
断开条件满足后,接收消息功能将查找指定的起始字符。

如果接收到的字符不是起始字符,将重新搜索断开条件。

所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。

起始字符和所有后续字符一起存入消息缓冲区
6、任何字符开始接受:设置il=1,sc=0,bk=0,smw90/smw190=0
忽略smb88/smb188中的起始字符。

应为smw90/smw190中的空闲线时间为0,接收指令已经执行,便将立即开始强制接收所有的任意字符,并将存入消息缓冲区。

7、任意字符开始,消息定时器超过则结束接收消息:令il = 1,sc = 0,bk = 0,smw90/smw190 = 0,忽略smb88/smb188中的起始字符。

以上设置用于实现从任意字符开始接收消息。

此外设置c/m = 1,tmr =1,用smw92/smw192设置以ms为单位的消息超时时间,用消息定时器监视接收是否超时。

如果未满足其他结束条件,在消息定时器超时的时候,将会终止接收消息功能。

这对自由口协议的主站是非常有用的。

1.SMB30定义
定义通讯的传输速度和模式
SMB30=16#05=2# 00 0 001 01
其中从高位到低位依次:
00:表示无校验
0:表示8个数据位
001:表示波特率19200
01:表示自由口通讯
2.SMB87定义
定义接收消息控制字节
SMB87=16#FC = 2#1111 1100
其中从高位到低位依次:
en=1:启用接受消息功能
sc=1:使用SMB88 的值监测数据的起始
ec=1:使用SMB89 的值监测数据的终止
il=1:使用SMW90 的值监测空闲条件
c/m=1:定时器为消息定时器
tmr=1:超过SMW92 中的时间段,则终止接收
bk=0:忽略中断条件
SM87.0=0 (无效)
3.定义SMB88、SMB89、SMW90、SMW92、SMB94
SMB88:定义开始字符为 2A
SMB89:定义结束字符为 0A
SMW90:空闲线时间段,单位:MS
SMW92:消息定时器的超时值(单位:MS),若超过该时间段,则停止接受消息
SMB94:要接受的最大字符数(1--255个字节);即使未使用字符计数消息终止,此范围也必须设置为所需的最大数据交换区
l SMW90=1000000us/19200 *11*3
其中:1000000/19200得到传输1个位需要多长时间,一个字符11个位,检测空闲3.5个字符,约等于3个字符
l SMW92=1000000us/19200 *11*20*1.5
其中:20表示字节接收最大的字节数,与SMB94有关,1.5倍表示整个消息长度的倍数
4.执行接受指令
TBL:
5.连接接受完成中断和发送完成中断,并且开放中断
6.接收完成中断:
由于我们使用的RS485转USB的线缆是半双工,发送和接收需要间隔至少5ms的时间。

所以接收完成后先延时5ms在发送。

7.SMB34定时中断:
延时时间到,执行发送指令,把先期接收到的数据再发送给PC。

8.发送完成中断:。

相关文档
最新文档