[西门子] 西门子S7-1200PLC点对点通信实例

[复制链接]
查看60954 | 回复0 | 2024-4-1 10:20:57 | 显示全部楼层 |阅读模式
关于启程
启程自动化培训成立于2012年,培训项目主打西门子PLC编程系统集成、工业机器人编程、EPLAN电气设计、视觉等培训与技术服务的机构。推荐高薪就业,越努力越幸运

在此示例中,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

    接收线路初始状态:无偏置(需要外部偏置)





编写STEP7程序

此示例程序使用全局数据块作为通信缓冲区,使用 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 程序将这些字符回送到终端仿真器。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则