爱操在线_精品热_av网站免费观看_四虎精品影视_九九热99久久久国产盗摄_九月婷婷网_免费成人av在线_欧美激情第三页_天天狠天天操_日韩人妻无码中文字幕视频

歡迎光臨入喜工業控制技術(上海)有限公司
當前位置
首頁 > 新聞中心
S7-200自由口通訊的監視分析方法
2020/12/4 9:06:37

以下程序,執行過程中發生無規律的通訊中斷且不自行恢復,STOP后RUN,再次M0.0置1后恢復通訊。將INT0中的ATCH挪到ENI前面后有改善,未再出現。但是不知道是不是根源。如何監視和分析自由口通訊的過程。請指教,是否有指令,寄存器或者程序,能夠監視自由口通訊過程,如何使用的。源程序來自下面鏈接的發送程序,http://www.ad.siemens.com.cn/service/article/S7-200/S7-200freeport/Default.aspx#1_3。

ENI是開中斷指令。
一般常規編寫程序的做法是先定義,定義通訊控制字節,定義通訊頻率、定義通訊數據等,最后開中斷。
如果把ENI寫在前面,從理論上是不符號西門子編程環境的,西門子的思想是先定義后使用的原則,符合歐洲人的思維邏輯。
程序大致含義是:
首先定義通訊(自由口通訊參數)
定義通訊數據,由M0.0上升沿觸發發送指令,即把上面定義好的數據發送出去
當發送完成進入發送完成中斷,執行接收并再次定義接收完成中斷(實際上這個完全可以在初始化程序段中編輯),你的問題是重新定義接收完成中斷后,仍然需要定義ENI指令一次。
當接收完成后進入接收完成中斷,你重新又再次定義定時中斷_0 = 20,(mS)這里同樣沒有再次定義ENI。
當定時中斷激活后,會在20mS的間隔發送你第一次定義好的數據。
我感覺你整體的程序架構不嚴謹,應該是初始化時,先定義好發送完成中斷、接收完成中斷,開中斷,不需要定義定時中斷的原因是自由口通訊是半雙工通訊,一條通訊鏈路上只能有唯一的一條指令有效,而定義定時中斷(它又不管你到底那條指令正常運行,或者指令沒有運行,到點一定會發送一條指令的),這樣會造成錯誤的幾率會大。
正常應該是先定義通訊數據,完成后執行發送,在發送中斷中編輯接收指令,在接收中斷中再次編輯需要的發送指令,如此循環進行。
上述僅僅只是我是一點看法。

提問者對于答案的評價:
謝謝指教。收益匪淺。改過后偶爾會卡在發送中斷,如何跳出,并恢復通訊?謝謝 。

最佳答案作者回復:
按我的思路,在發送完成中斷中編寫接收程序,在接收完成中斷寫發送程序,這個是我在編輯自由口通訊的工作經歷,按此方法可以,不會產生指令之間的沖突。

聯系方式
CONTACT US

電話:13818569113      15721373211

郵箱:fushidianji@139.com

網址:http://www.jiansujiabc.com

地址:上海青浦區北青公路7171號111-112室

用手機掃描二維碼關閉
主站蜘蛛池模板: 满洲里市| 汉源县| 婺源县| 疏附县| 崇礼县| 崇左市| 郧西县| 台南市| 巢湖市| 会同县| 叙永县| 措勤县| 溧水县| 吴桥县| 雷波县| 上杭县| 新营市| 西安市| 石台县| 库尔勒市| 临江市| 东山县| 贵阳市| 中西区| 蒙自县| 彭阳县| 睢宁县| 成武县| 安陆市| 凌海市| 东丽区| 雷波县| 云阳县| 西峡县| 宜良县| 瑞金市| 洛宁县| 洛宁县| 兴和县| 新营市| 湖南省|