欢迎来到天天文库
浏览记录
ID:38132732
大小:220.68 KB
页数:5页
时间:2019-05-31
《西门子S7-200自由口通信心得》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西门子S7-200PLC自由口通信学习摘要本文以s7-200PLC与智能电表通信为范例(电表波特率为1200bps,偶校验,8位数据位)一、PLC自由口协议初始化1、根据智能设备通信时使用的波特率、校验方式、起始位等参数配置PLC自由口,即将上述参数用MOVB指令写入SMB30,SMB30格式如下图所示:初始化子程序如下:二、声明中断发送数据和接收完数据都能链接到中断程序,发送完中断与接收完中断的中断号分别为9和23,中断可在初始化子程序中声明三、编写自由口要发送的报文子程序严格按智能设备报文格式,将相应命令,将指令长度(字节)MOV到任意的字节单元,例如vb1
2、0。再用MOV_B或MOV_W等指令传送到vb11开始后连续的字节中。报文子程序上图为读取电表标识编码为9010(即正向有功总电能)的指令四、用XMT指令发送报文XMT指令需指定两个参数,第一个为要发送的报文的起始地址(本例为VB10),第二个为使用的通信口(本例为0口)。可以用定时器控制某一CPU内部触点来控制报文发送的周期。要注意的是,XMT指令必须用上升沿“—
3、P
4、—”触发,否则CPU将会报错,CPU将认为有多个XMT/RCV指令同时执行,这是不允许的!发送报文子程序五、利用发送完中断启动接收数据指令当报文用XMT发送完毕,会产生9号中断。我们可以利用中断
5、子程序捕捉相应的中断,并在中断程序中编写相应事件!在步骤1中已经声明了9号中断连接到中断子程序“发送完中断”。因为此我们在“发送完中断”中断子程序中使用RCV指令即可接收到由通信口返回的数据。即将数据送到VB100.“发送完中断”中断子程序总结一下编程原则:这里我们总结以下自由口编程的一般原则:1.SM0.1触发端口初始化,连接发送完成和接收完成中断(中断事件9和23)2.SM0.0触发RCV指令3.XMT指令用上升沿触发,并在指令运行前先保证端口0的停止接收4.根据将要接收信息的不同,合理设置SMB87~SMB945.必须满足发送结束条件(如字节个数,结束字符
6、等)才能产生9号中断
此文档下载收益归作者所有