您好,欢迎访问一九零五行业门户网

西门子S7-1200如何点对点 (PtP) 通信

西门子s7-1200如何点对点 (ptp) 通信cpu 支持下列基于字符的串行协议的点对点通信(ptp):
ptpussmodbusptp可提供大的自由度和灵活性,但需要在用户程序中包含大量的实现。
ptp 可用于实现多种可能性:
能够将信息直接发送到外部设备,例如,打印机能够从其它设备(例如,条码阅读器、rfid 阅读器、第三方照相机或视觉系统以及许多其它类 型的设备)接收信息能够与其它设备(例如,gps 设备、第三方照相机或视觉系统、无线调制解调器 以及更多其它设备)交换信息(发送和接收数据)这种类型的 ptp 通信属于串行通信,它使用标准 uart 来支持多种波特率和奇偶校验选项。rs232 和 rs422/485 通信模块 (cm 1241) 以及 rs485 通信板 (cb 1241) 提供了用于执行 ptp 通信的电气接口
通过profibus或profinet的ptp
v4.1版的s7-1200cpu与step7v13sp1一起使用可以扩展ptp的功能,使用户能够使用profinet或profibus分布式i/o机架与各种设备(rfid阅读器、gps设备和其它设备)通信。
profinet:可以将s7-1200cpu的以太网接口连接至profinet接口模块。可通过机架中ptp通信模块以接口模块实现与ptp设备的串行通信。profibus:在s7-1200cpu机架左边插入profibus通信模块。将profibus通信模块连接至profibus接口模块的机架。可通过机架中ptp通信模块以接口模块实现与ptp设备的串行通信。出于这个原因,s7-1200支持两组ptp指令:
早期点对点指令:这些指令适用于v4.0版之前的s7-1200,并且只能通过 cm1241通信模块或cb1241通信板进行串行通信。点对点指令:这些指令具备早期指令的所有功能,并且增添了连接profinet和profibus分布式i/o的功能。这些点对点指令可用于组态分布式i/o机架中ptp通信模块与ptp设备之间的通信。要使用这些点对点指令,s7-1200cm 1241 模块的固件版本必须不得低于v2.1。说明用于s7-1200的v4.1版本时,可以对所有类型的点对点通信使用点对点指令:串行通信、基于profinet的串行通信和基于profibus的串行通信。step7提供早期点对点指令的目的仅是为了支持现有程序。无论对于v4.1cpu或v4.0还是更早版本的cpu,早期指令仍然有效。无须对之前程序的指令进行转换。
组态通信端口
您可以使用以下各种方法组态通信接口:
使用step7中的设备组态组态端口参数(波特率和奇偶校验)、发送参数和接收参数。cpu存储设备组态设置,并在循环上电和从run模式切换到stop模式后应用这些设置。使用port_config、send_config和receive_config指令设置参数。这些指令设置的端口设置在cpu处于run模式期间有效。 在切换到stop模式或循环上电后,这些端口设置会恢复为设备组态设置。组态硬件设备之后,通过选择机架上的某个cm或cb(如果已组态)来组态通信接口的参数。窗口中的“属性”(properties) 选项卡显示所选 cm 或 cb 的参数。 选择“端口组态”(port configuration) 以编辑以下参数:
波特率奇偶校验每个字符的数据位数停止位的数目流控制( rs232)等待时间
对于cm1241rs232和cbrs485(除仅cm1241rs232支持的流控制外),无论是组态rs232或rs485通信模块还是rs485
通信板,端口组态参数都是相同的。但是,参数值可以不同。对于cm1241rs422/485,您还具有下列所示的额外端口组态选项。cm1241rs422/485模块的422模式还支持软件流控制。
选择“端口组态”(port configuration) 以编辑以下rs422/485 参数:
1、“工作模式”(operating mode):
– 全双工 (rs422) 四线制模式(点对点连接)
– 全双工 (rs422) 四线制模式(多点主站)
– 全双工 (rs422) 四线制模式(多点从站)
– 半双工 (rs485) 两线制模式
2、“接收线路初始状态”(receive line initial state):
– 无
– 正向偏置(信号 r(a) 0v、信号 r(b) 5v)
step7用户程序还可通过port_config指令组态端口或更改现有组态。指令主题提供更多关于工作模式和初始线路状态以及其它参数的详细信息。
参数 定义
波特率 波特率的默认值为9.6kbps。有效选项有:300波特、600波特、1.2kb、2.4 kb、4.8 kb、9.6 kb、19.2 kb、38.4 kb、57.6 kb、76.8 kb 和115.2 kb。
奇偶校验 奇偶校验的默认值是无奇偶校验。有效选项有:
无奇偶校验、偶校验、奇校验、传号(奇偶校验位始终设为
1)和空号(奇偶校验位始终设为0)。
每个字符的数据位数 字符中的数据位数。有效选择为7或8。
停止位的数目 停止位的数目可以是1或2。默认值是1。
流控制 对于rs232通信模块,可以选择硬件或软件流控制。
如果选择硬件流控制,则可以选择是rts信号始终激活还是切换rts。
如果选择软件流控制,则可以定义xon和xoff字符。
rs485通信接口不支持流控制。cm1241rs422/485模块的422
模式支持软件流控制。
等待时间 等待时间是指cm或cb在断言rts后等待接收cts的时间,或者在接收xoff后等待接收xon的时间,具体取决于流控制类型。 如果在通信接口收到预期的cts或xon之前超过了等待时间,cm或cb将中止传送操作并向用户程序返回错误。等待时间,以毫秒表示。范围是 0到65535毫秒。
工作模式 选择工作模式rs422或rs485以及网络组态。
接收线路初始状态 选择偏置选项。有效值为无、正向偏置和反向偏置。 反向偏置用于检测电缆断线。
管理流控制
流控制是指为了不丢失数据而用来平衡数据发送和接收的一种机制。 流控制可确保传送设备发送的信息量不会超出接收设备所能处理的信息量。 流控制可以通过硬件或软件来实现。rs232cm支持硬件及软件流控制。rs485cm和 cb不支持流控制。cm1241rs422/485模块的422模式支持软件流控制。可在组态端口时或使用port_cfg指令流控制类型。
硬件流控制通过请求发送(rts,requesttosend)和允许发送(cts,cleartosend)通信信号来实现。对于rs232cm,rts信号从引脚7输出,而cts信号通过引脚8接收。
rs232cm是dte(dataterminalequipment,数据终端设备)设备,其将rts 断言为输出并将cts作为输入来监视。
硬件流控制:rts切换
如果为rs232cm启用rts切换的硬件流控制,则模块会将rts 信号设置为激活状态以发送数据。它还会监视cts 信号以确定接收设备是否能接收数据。cts信号激活后,只要cts 信号保持激活状态,模块便可发送数据。如果cts 信号变为非激活状态,则传送必须停止。
cts信号变为激活状态时,传送会继续执行。如果cts 信号在组态的等待时间内未激活,则模块会中止传送并向用户程序返回错误。在端口组态中等待时间。
对于需要“传送已激活”信号的设备,适合使用rts切换流控制。 例如,无线调制解调器使用rts作为“键”信号来激励无线发送器。rts 切换流控制对于标准电话调制解调器不起作用。对电话调制解调器使用“rts 始终激活”选项。
硬件流控制:rts始终激活
在“rts始终激活”模式下,cm1241 默认情况下将rts设置为激活状态。 设备(如电话调制解调器等)监视来自cm的rts 信号,并将该信号用作允许发送信号。调制解调器仅在rts处于激活状态时才向cm传送数据,即,电话调制解调器在见到激活的cts信号后发送数据。如果rts 处于非激活状态,电话调制解调器不向cm传送数据。
要使调制解调器随时都能向cm发送数据,请组态“rts始终激活”硬件流控制。cm因此会将rts信号设置为始终激活。即使模块无法接受字符,cm也不会将rts 设置为非激活状态。传送设备必须确保不会使cm的接收缓冲区超负荷运行。
利用数据终端就绪(dtr)和数据设备就绪(dsr)信号
对于这两种硬件流控制类型的任何一种,cm都会将dtr设置为激活状态。只有当dsr信号变为激活状态时,模块才会进行传送。仅在发送操作开始时评估dsr的状态。 如果dsr在传送操作开始后变为非激活状态,将不能暂停传送操作。
软件流控制
软件流控制使用消息中的特殊字符来实现流控制。将组态表示xon和xoff的十六进制字符。
xoff指示传送必须停止。xon指示传送可以继续。xoff和xon不得是相同的字符。传送设备从接收设备收到xoff字符时,将停止传送。传送设备收到xon字符时,传送又继续进行。如果cm在通过端口组态的等待时间内没有收到xon字符,它将中止传送并向用户程序返回错误。
软件流控制需要全双工通信,因为在传送过程中接收伙伴必须能够将xoff发送到传送伙伴。软件流控制只能用于仅包含ascii字符的消息。 二进制协议无法使用软件流控制。
组态传送(发送)和接收参数在cpu可进行ptp通信前,必须组态传送(或发送)消息和接收消息的参数。 这些参数决定了在向目标设备传送消息或从目标设备接收消息时的通信工作方式。
组态传送(发送)参数在 cpu 的设备组态中,通过设置所选接口的“传送消息组态”(transmit message configuration) 属性,来组态通信接口传送数据的方式。
还可以使用send_config指令,从用户程序动态组态或更改传送消息参数。在用户程序中通过send_config指令设置的参数值会覆盖“传送消息组态”(transmitmessageconfiguration)属性。请注意,发生掉电时,cpu不会保留通过send_config指令设置的参数。
组态接收参数在cpu的设备组态中,可以组态通信接口接收数据以及识别消息开始和结束的方式。 在所选接口的“接收消息组态”(receive message configuration)属性中设置这些参数。
还可以在用户程序中使用receive_config指令,
说明在用户程序中通过receive_config指令设置的参数值会覆盖“接收消息组态”(receivemessageconfiguration)属性。请注意,发生掉电或转为stop状态时,cpu不会保留通过rcv_cfg指令设置的参数。
消息开始条件
用户可以决定通信接口识别消息开始的方式。 在满足所组态的结束条件之前,开始字符以及组成消息的字符会一直进入接收缓冲区。
可以多个开始条件。 如果多个开始条件,则只有在满足所有开始条件后才认为消息开始。 例如,如果用户组态了线路空闲时间和特定开始字符,cm 或cb将首先查找要满足的线路空闲时间要求,然后cm将查找的开始字符。 如果收到其它某个字符而不是的开始字符,cm 或cb将通过再次查找线路空闲时间来重新启动消息开始条件搜索。
参数 定义
以任意字符开始 “任意字符”条件,成功接收任何字符都将表示消息开始。该字符是消息中的个字符。
线路中断 “线路中断”条件在接收中断字符后开始消息接收操作。
线路空闲 “线路空闲”条件在接收线路空闲或平静了位时间后开始消息接收操作。一旦出现该条件,即启动消息接收。
①字符
②重启线路空闲定时器
③检测到线路空闲并启动消息接收操作
参数 定义
特殊条件: 通过特殊字符指示消息开始。然后,该字符便成为消息中的个字符。
通过单个字符识别消息 在该特定字符前接收到的任何字符都将被丢弃。默认字符是stx。
开始
特殊条件: 通过多四个组态序列中的一个特殊字符序列来指示消息开始。
通过字符序列识别消息 可以为每个序列多5个字符。
开始(recognize 对于每个字符位置,可以一个特定的十六进制字符,或者在序列匹配时
message start witha 忽略该字符(通配符字符)。
charactersequence) 字符序列中后一个特定字符终止该开始条件序列。
程序根据组态的开始条件对进入序列进行评估,直到满足开始条件为止。
只要满足了开始序列,就会开始评估结束条件。
多可组态四个特定字符序列。
如果几个不同的字符序列都指示消息开始,则使用多序列开始条件。
如果与其中一个字符序列相匹配,消息就会开始。
检查开始条件的顺序是:
线路空闲线路中断字符或字符序列 检查多个开始条件时,如果有一个条件没有满足,则cm或cb将从个所需的条件开始重新启动检查。cm或cb确定已满足启动条件后,将开始评估结束条件。示例组态:消息在两个字符序列出现一个时开始
请注意以下消息开始条件组态:
对于该组态,只要出现其中一个序列,即会满足开始条件:
接到一个由五个字符构成的序列,且其个字符是0x6a而第五个字符是0x1c时。对于该组态,位置2、3和4的字符可以是任意字符。 在接到第五个字符后,将开始评估结束条件。接到两个连续的0x6a字符(前面为任意字符)时。在这种情况下,会在接到第二个 0x6a后开始评估结束条件(3个字符)。个0x6a前面的字符包含在开始条件中。满足该开始条件的实例序列有:<任意字符> 6a6a6a 12 14 181c6a 44 a5 d21c消息结束条件
用户还可以组态通信接口识别消息结束的方式。 可以组态多个消息结束条件。 如果出现组态条件中的任何一个,消息就会结束。
例如,可以采用消息超时 300 ms、字符间超时 40 个位的时间以及大长度 50个字节作为消息结束的结束条件。 如果接收消息的时间超过 300ms、任意两个字符间的间隔超过 40 个位的时间或接收到 50 个字节,消息即会结束。
示例组态:通过字符序列结束消息
请注意以下消息结束条件组态:
在这种情况下,当接收到两个连续的0x6a字符(后跟任意两个字符)时,即满足结束条件。0x6a0x6a序列前面的字符不是结束字符序列的组成部分。终止结束字符序列时需要在0x6a0x6a序列后面加两个字符。字符位置4和5中接收的值不相关,但必须接收它们才能满足结束条件。
说明如果想用字符序列来指示消息的结束,应将该序列放置在后一个字符位置。在上面的示例中,如果想用0x6a0x6a结束不带任何尾随字符的消息,应在字符位置4和5中组态0x6a。
在消息中消息长度
选择在消息中包括消息长度这一特殊条件时,必须提供三个用于定义消息长度相关信息的 参数。
实际消息结构会因所用的协议而变化。三个参数如下所示:
n:消息中出现长度说明符的字符位置(从1开始)长度大小:长度说明符的字节数(1、2或4)长度m:跟在长度说明符后、不包括在长度计数范围内的字符数结束字符可不连续。“长度 m”值可用于大小不包含在长度字段中的校验和字段的长度。
其它类似信息

推荐信息