西门子200 PLC自由口通讯
编程自由口通讯的基本步骤
设置通讯参数:如果是集成在本机上基于RS485口,在SMB30中设置(prot0口);如果是采用通讯信号板,则在SMB130中设置(prot1口),这2个地址的设置,仅仅是对应的通讯口的不同,参数是相同的。
定义接收信息的控制字节,对于prot0口在SMB87;对于prot1口在SMB187中设置。
设置根据接收控制字节、通讯参数的通讯数据。
端口0:
SMB87/SMB88/SMW90/SMW92;
端口1:
SMB188/SMB189/SMW190/SMW192。
(根据协议用户自由选择)
设置通讯数据总字节数,SMB94/SMB194。(范围1~255)。
设置中断事件号、开中断。发送完成中断及接收完成中断。
启用发送指令XMT。
在发送完成中断里编写接收指令RCV;在接收完成中断里编写发送指令XMT。
假设:做这样一个例子,让西门子200smartplc本机RS485口发送一串字符(siemens)到串口调试软件的信息接收区,串口调试软件的发送区发送一串(nihao!)到200smart plc数据寄存器VB102开始的6个字节中,接收信息启用起始符、结束符方式。
做这个程序前先定义好一些通讯参数:(按上面的7点内容展开)
定义SMB30: 自由口通讯、频率9600、无校验,SMB30=16#09
定义SMB87: 启用接收信息控制、启用起始符、结束符,SMB87=16#E0
设置起始符: SMB88=16#3A(自由选取)
设置结束符: SMB89=16#0A(自由选取)
设置中断事件号: 发送完成中断事件号9;接收完成中断事件号23
开中断
在上述初始化程序中,启用发送指令,并编写相应的程序
定义好发送和接收数据的数据储存地址区