s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)

S7-200自由口通讯是基于RS485通讯基础的半双工通讯,因此,发送和接收指令不能同时执行。 自由口通讯使用SMB30(口0)和SMB130(口1)定义通讯口的工作模式。SMB30/SMB130各位的定义如下:

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(1)

图1:通讯口工作模式寄存器

使用自有口通讯,SM30.0和 SM30.1(SM130.0和 SM130.1=0)

必须分别为1和0。 一、 发送指令(XMT) 使用XMT发送指令可以把存于缓冲区中的数据,一次发送一个或多个字节的数据,最多为255个。发送完最后一个字符后还可以连接

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(2)

发送缓冲区的格式如下表所示:

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(3)

图3:发送缓冲区的格式

说明:

T 0:发送信息的字节个数需要提前定义。 T 1~T 255:要发送的数据字节 和XMT有关的寄存器:SMB4的SM4.5和SM4.6。SM4.5=1时,口

0发送完毕;SM4.6=1时,口1发送完毕。 由以上可以看出,有两种方法可以检测端口 0或 1 的数据发送状态:一种是利用中断,一种是利用寄存器SMB4的第5 位(口0)和第6位(口1)。 二、 接收指令(RCV) 使用接收指令(RCV)可以从端口0 或1接收一个或多个字节的数据(最多255个),并存于数据缓冲区。接收完最后一个字节后可以连接到一个接收完中断(口0是23,口1是24,见图2所示)。 接收缓冲区的格式如下表所示:

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(4)

图4:接收缓冲区的格式 说明:

T 0:接收字符计数,在接收到结束字符时自动清零

T 1:起始字符,在SMB88(口0)或SMB188(口1)中定义

T 2~T 244:接收到的数据字节

T 255:结束字符,在SMB89(口0)或SMB189(口1)中定义 和接收有关的寄存器及定义如下表所示:

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(5)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(6)

图5:接收有关寄存器

说明:1、SMB86/SMB186:接收终止状态信息寄存器,含有接收终止原因的信息;

2、SMB88/SMB188:信息起始位字节(如发送的信息有起始位,将把此寄存器的内容和接受信息的每一字节相比较,检测确认后续字节是否是信息。因此,在编程时,需要在通讯初始化时,把信息启动位字节传入SMB88或SMB188);

3、SMB89/SMB189:信息停止位字节(如发送的信息有停止位,将把此寄存器的内容和接受信息的每一字节相比较,检测确认信息是否已传送完毕。因此,在编程时,需要在通讯初始化时,把信息启动位字节传入SMB89或SMB189);

4、SMB90/SMB190:信息空闲状态的时间(ms),空闲线时间后接受的第一个字节是信息的开始;

5、SMB94/SMB194:接受的最大字符数(1~255)。

三、编程步骤

1、利用SM0.1初始化通讯参数。
  • 使用SMB30(口0)或SMB130(口1)选择自由口通讯模式,并选定自由口通讯的波特率,数据位数和校验方式。
  • 定义通讯口接收格式SMB87(口0)或SMB187(口1)。包括启动信息接收(第7位=1),是否有起始位(第6位),是否有结束位(第

5位)以及是否检测空闲状态(第4位)等。

  • 设定起始位(SMB88或SMB188)或结束位(SMB89或SMB189)、空闲时间信息(SMB90 或 SMB190)及接收的最大字符数(SMB94 或

SMB194)。

  • 如利用中断,连接接收完(事件23)和发送完(事件9 )中断到中断程序,并且开中断(ENI)。
  • 一般还要利用SMB34定义一个定时中断,定时发送数据(一般为50ms,即间隔发送数据的时间)。 2、编写主程序 自由口通讯主程序的任务是把要发送的数据放到送区,并接收数据到接收区,当然此部分也可以用一个子程序完成。

3、编写SMB34的定时中断程序 把要发送的数据传送到发送区,一般包括:发送的字节数,发送的数据及结束字符,最后再利用XMT指令启动发送。

4、编写发送完中断和接收完中断子程序
  • 发送完中断子程序的主要任务是发送完后断开SMB34定时中断,并利用RCV指令准备接收数据。
  • 接收完中断子程序的任务是接收数据完成后重新连接SMB34的定时中断,准备发送数据。 四、例程 本例的主要作用是利用甲机控制乙机的电机星-角起动,乙机控

电机星角起动。I/O分配如下所示:

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(7)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(8)

发送和接收数据缓冲区的分配如下所示:

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(9)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(10)

甲机(2号站)程序梯形图:主程序:

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(11)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(12)

初始化子程序(initialize):

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(13)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(14)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(15)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(16)

甲机星角运行子程序(XingJiao)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(17)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(18)

中断程序0(50ms间隔发送程序)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(19)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(20)

中断程序1(发送完中断)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(21)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(22)

中断程序2(接收完中断)

s7-200编程怎么设置中文(S7-200通讯的编程步骤---自由口通讯)(23)

乙机(3号站)的程序和甲机类似,只要在编程过程中注意发送和接收区和甲机的对应就可以

需要更多西门子资料可私信回复

西门子

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页