西门子S7-200自由通讯口的应用

时间:2016-05-27 10:45:35  来源:  作者:

20140714L48NN40208.jpg

    1  引言
    S7-200系列PLC是西门子公司生产的具有高性价比的小型可编程控制器,由于它结构小巧、多功能、多用途,价格低廉,在许多行业得到了广泛的应用。S7-200系列可编的CPU单元是集成CPU、I/O点、电源一体的控制单元,有CPU212、CPU214、CPU215和CPU216。并且还提供了方便、简洁、开放的通信功能,能使用户很容易地进行组网,其通信和实时性方面的优点,使它成为解决复杂自动化方案的理想之选。
    2  系统功能
    根据条码录用数据判断出产品的型号,从而执行该型号产品的相应程序段。条码信息可在人机界面OP77上直接显示出,使操作者一目了然,并且通过OP77翻阅前面产品相关信息。
    3  系统配置
    人机界面为OP77,控制单元采用CPU226。CPU226中的一个端口port1作为连接OP77和CPU的接口,用一根PPI电缆线简单连接即可,另一端口port2用于连接条码扫描枪。由于条码扫描枪为232接口,而自由通讯口为485口,所以还需一个232-485转换模块,本例中选用了一根西门子编程电缆线。可是一般串口扫描仪大多用于与计算机相连,所以线的插头为孔状,而可编的断口也为孔状,因此必需再做一根两头为针状的交叉式连接的短接线(头2,3对接,5直连)连在扫描仪和port0之间。
    4  自由通讯口
    S7-216有两个端口port1口、port2口,它们可以是PPI口,也可以是自由通讯口。可以通过程序来自由设定它们的通讯形式。
    4.1与自由口模式有关的特殊寄存器及相关的位置
    (1)控制字寄存器SM30。S7-200PLC的通讯模式由SMB30设置,SMB30各位的含义如上图所示,当mm=01时PLC工作于自由口模式。
    (2)通信接受字符缓冲器SMB2。SMB2是一个暂态寄存器,用于存放在自由通信方式下接受到的当前字符,用户在下一步应从这里取走其中内容,通过编程控制将接受到的字符一个一个由SMB2移入接收缓存区。
    (3)通讯校验结果标志位SM3.0。PLC按SM30规定的奇偶校验方式对所接受到的数据作校验。如果校验有错,PLC自动将SM3.0置1,SM3.0表示奇偶校验正确。根据这个标志,用户可决定对当前信息的取舍,还可以在出错的情况下,将次错误位发给对方,以便要求它重发。
    (4)工作方式标志位SM0.7。S7-200系列PLC只有处于运行(RUN)方式时才能进行自由口模式通信,而在停止(STOP)方式时只能以PPI模式通信。当PLC处于RUN方式是SM0.7=1,否则SM30.7=0,因此可通过判断SM30.7的状态来打开或关闭自由口通讯。
    (5)发送器空标志SM4.5及收发指令。S7-200PLC有专门的发送指令:XMT TABLE,PORT;TABLE为发送数据的字节数即数据长度,最大为225;PORT指定通讯口,自由口模式下必须为0。当正发送数据信息时,特殊存储器位SM4.5=0,当发送完成后,SM4.5=1,因此可通过判断SM4.5的状态来进行发送后处理,也可直接用发送中断来处理。
    4.2S7-200PLC的通讯中断
    S7-200PLC的通信端口0具有三个中断事件:接受字符8号中断,发送结束9号中断,接受信息23号中断。在用户程序中可用ENI指令开放全局中断,用DISI指令禁止所有中断;在全局中断开放的前提下,单个中断可用ATCH、DTCH指令独立的开放和禁止。另外CPU216的通信口1具有24,25,26号三个中断事件。
    5  软件设计
    (1)SM0.1第一扫描周期接通,给port1口初始化。SMB30:00001001即波特率为9600,自由口协议。
    (2)SMB187port1口接受信息状态字节。
    en: 0=禁止接受信息功能。
    1=允许接受信息功能。
    Sc: 0=忽略SMB88和SM188。
    1=使用SMB189的值检测结束信息。
    Ec: 0=忽略SMB89和SM189。
    1=使用SMB188的值检测起始信息。
    Il: 0=忽略SMB90和SM190。
    1=使用SMB190的值检测空闲状态。
    c/m: 0=定时器是内部字符定时器。
    1=定时器是信息定时器。
    Tmr:0=忽略 SMW92和SMW192。
    1=当执行SMW92和SMW192时终止接收。
     SMB187=11110000。
    (3)SMB188=’b’检测条码扫描枪的开始码为’b’后开始记录数据。
    (4)SMB189=’e’检测条码扫描枪结束符为’e’为信息字符的结束。
    (5)SMB190为检测空闲时间5ms。在空闲时间结束后接受的新的字符为新信息的开始。
    (6)SMB194为接受字符的最大数。
    (7)接受完成事件连接到中断。
    (8)允许用户中断。
    (9)端口1的接受信箱缓冲区指向VB200。
     在中断程序中调用(9)语句,执行中断时,即将条码输送到VB200开始的寄存器中。
    在OP77上定义一个字符形式输出域,域变量为VB200,20个字符显示。那么每当扫描一次条码后OP77上就可显示本次条码的值,方便、清晰。
    本例中还可查询上一次录用的值。
    当Q0.1的下降延到达时把本次的条码由VB200寄存器区存储到VB300开始的寄存器区,在此之前把VB300寄存器区的内容已传给VB400寄存器区存储。VB300为本次数据,而VB400为上一次数据。简单地做了一个数据存储。
    那么在OP77上定义两个字符形式输出域,域变量分别为VB300和VB400,即可查阅到本次条码和上次条码。同理还做多一些数据的存储。
    6  结束语
     本文阐述了利用SIEMENS S7-226 PLC集成的串口与条码扫描枪通信的编程实例。介绍了自由口通讯的相关知识。本例中PLC与条码扫描枪间通讯安全可靠,成本低廉,体现了小型可编的优越性。

粤ICP备17024453号