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

西门子1200PLC点对点通信实例

在此示例中,s7-1200 cpu 通过 cm 1241 rs232 模块与装有终端仿真器的 pc 通信。 此示例中的点对点组态和 step 7 程序说明了cpu如何从 pc 接收消息和将该消息回送到 pc。
必须将 cm 1241 rs232 模块的通信接口连接到 pc 的 rs232 接口(通常为 com1)。 由于这两个端口都是数据终端设备 (dte),所以在连接这两个端口时必须交换接收和发送引脚(引脚 2 和 3),可通过以下任何一种方法实现交换:
使用null 调制解调器适配器和标准rs232 电缆交换引脚 2 和 3。
使用已交换引脚2和 3 的 null 调制解调器电缆。 通常可以将电缆两端是否带有两个 9 针 d 型母头连接器作为识别 null 调制解调器电缆的依据。
组态通信模块
可通过 step 7 中的设备组态或通过用户程序指令来组态 cm 1241。 此示例使用设备组态方法。
端口组态:在“设备组态”(device configuration) 中单击 cm模块的通信端口,然后如下所示组态该端口:
说明
“操作模式”和“接收线路初始状态”的组态设置,只适用于 cm 1241 (rs422/rs485) 模块。 其它 cm 1241 模块没有这些端口组态设置。
传送消息组态: 接受传送消息组态的默认值。 在消息开始时将不发送中断信号。
接收消息开始组态:将cm 1241 组态为在通信线路处于非激活状态至少 50个位时间(在 9600 波特时约为 5 毫秒 = 50 * 1/9600)时开始接收消息:
接收消息结束组态: 将 cm 1241 组态为在多接收到 100 个字节或换行字符(十进制数 10 或十六进制数 a)时结束消息。 结束序列多允许序列中具有五个结束字符。 该序列中的第五个字符是换行字符。 前面四个结束序列字符均是“不相关”字符或不选择的字符。 cm 1241 不评估“不相关”字符,但会在零或更多“不相关”字符后面寻找指示消息结束的换行字符
rs422 和 rs485 工作模式
组态 rs422 
对于 rs422 模式,有三种工作模式,具体取决于网络组态。 根据网络中的设备选择其中一种工作模式。 接收线路初始状态的不同选择参考了如下所示的详细情况。
全双工(rs422)四线制模式(点对点连接): 在网络中有两台设备时选择此选项。 在接收线路初始状态中:
–  在提供偏置和终端时(第 3 种情况),选择无。
–  选择正向偏置以使用内部偏置和终端(第 2 种情况)。
–   选择反向偏置以使用内部偏置和终端,并为两台设备启用电缆断线检测(第 1
种情况)。
全双工(rs422)四线制模式(多点主站): 当网络具有一个主站和多个从站时,为主站选择此选项。 在接收线路初始状态中:
–  在提供偏置和终端时(第 3 种情况),选择无。
–  选择正向偏置以使用内部偏置和终端(第 2 种情况)。
–  在此模式下,不能进行电缆断线检测。
全双工(rs422)四线制模式(多点从站): 当网络具有一个主站和多个从站时,为所有从站选择此选项。 在接收线路初始状态中:
–  在提供偏置和终端时(第 3 种情况),选择无。
–  选择正向偏置以使用内部偏置和终端(第 2 种情况)。
–   选择反向偏置以使用内部偏置和终端,并为从站启用电缆断线检测(第 1种情况)。
第 1 种情况: rs422,带电缆断线检测
工作模式:rs422
接收线路初始状态:反向偏置(有偏置,r(a)> r(b) > 0v)
电缆断线:启用电缆断线检测(发送器始终处于激活状态)
第 2 种情况: rs422,不带电缆断线检测,正向偏置
第 3 种情况: rs422: 不带电缆断线检测,无偏置
工作模式:rs422
接收线路初始状态:无偏置
电缆断线:无电缆断线检测(发送器仅在发送时才启用) 偏置和终端由用户在网络末端节点处添加。
组态 rs485
对于 rs485 模式,只有一种工作模式。 接收线路初始状态的不同选择参考了如下所示的详细情况。
半双工(rs485)两线制模式。 在接收线路初始状态中:
–  在提供偏置和终端时(第 5 种情况),选择无。
–  选择正向偏置以使用内部偏置和终端(第 4 种情况)。
第 4 种情况: rs485: 正向偏置
工作模式:rs485
接收线路初始状态:正向偏置(有偏置,r(b) > r(a) > 0v)
第 5 种情况: rs485: 无偏置(外部偏置)
工作模式:rs485
接收线路初始状态:无偏置(需要外部偏置)
编写 step 7 程序
此示例程序使用全局数据块作为通信缓冲区,使用 rcv_ptp 指令从终端仿真器接收数据,使用 send_ptp 指令向终端仿真器回送缓冲数据。 要对该示例编程,需要添加数据块组态和主程序块 ob1,如下所述。
全局数据块“comm_buffer”: 创建一个全局数据块 (db) 并将其命名为“comm_buffer”。 在该数据块中创建一个名为“buffer”,数据类型为“字节数组 [0 .. 99]”的值。
程序段 1: 只要 send_ptp 未激活,就启用 rcv_ptp 指令。 在程序段 4 中,mw20.0 中的 tag_8 在发送操作完成时进行指示,因此是在通信模块相应地准备好接收消息时进行指示。
程序段 2: 使用由 rcv_ptp 指令设置的 ndr 值(m0.0 中的 tag_1)来复制接收到的字节数,并使一个标记(m20.0 中的 tag_8)置位以触发 send_ptp 指令。
程序段 3: m20.0 标记置位时启用 send_ptp 指令。 同时还使用此标记将 req 输入设置为 true 一个扫描周期时间。 req 输入会通知 send_ptp 指令要传送新请求。 req 输入必须仅在 send_ptp 的一个执行周期内设置为 true。 每个扫描周期都会执行 send_ptp 指令,直到传送操作完成。 cm 1241 传送完消息的后一个字节时,传送操作完成。传送操作完成后,done 输出(m10.0 中的 tag_5)将被置位为 true 并持续 send_ptp 的一个执行周期。
程序段 4: 监视 send_ptp 的 done 输出并在传送操作完成时复位传送标记(m20.0 中的 tag_8)。 传送标记复位后,程序段 1 中的 rcv_ptp 指令可以接收下一条消息。
组态终端仿真器
必须设置终端仿真器以支持此示例程序。 几乎可以在 pc 上使用任何终端仿真器,例如,超级终端。 确定终端仿真器处于断开模式后,如下所述编辑各设置:
将终端仿真器设置为使用pc 上的 rs232 端口(通常为 com1)。
将端口组态为 9600 波特、8 个数据位、无奇偶校验(无)、1个停止位和无流控制。
更改终端仿真器设置使其仿真 ansi终端。
组态终端仿真器ascii 设置,使其在每行后(用户按下 enter 键后)发送换行信号。
本地回送字符,以便终端仿真器显示输入的内容。
运行示例程序
要运行示例程序,请执行以下步骤:
将step 7 程序下载到 cpu 并确保其处于 run 模式。
单击终端仿真器上的“连接”(connect) 按钮以应用组态更改并启动与 cm1241的终端会话。
在pc 中键入字符并按 enter 键。
终端仿真器会将输入的字符发送到 cm 1241 和 cpu。 然后,cpu 程序将这些字符回送到终端仿真器。
其它类似信息

推荐信息