sdwufei
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 130 点
下载积分: 10381 分
在线时间: 168(小时)
注册时间: 2010-07-20
最后登录: 2024-07-28
查看sdwufei的 主题 / 回贴
楼主  发表于: 2010-11-18 16:11
請問關於三菱RS指令的使用


我使用的共兩種架構
a:FX3U+FX3U-485BD
b:FX3UC+FX3U-485ADP-MB

目前我在測試RS指令,我希望當我命令發出(M800接點動作)時,我不希望PLC會一直持續發出命令,
所以我在第65step寫了當D8122=0的時候,我把RS指令送出byte數的暫存器D100改為0,讓RS指令
保持再接收的狀態,直到接收到資料後再把M800給OFF掉。
PS:我的RS指令D100為送出byte數,D101開始為送出資料內容。D200為接收Byte數,D201為接收資料內容

目前我測試結果,在B方案裡很正常。
我的PLC送出8個byte的字串01 03 00 00 00 01 84 0A
我在電腦接收端也可以看到01 03 00 00 00 01 84 0A 共八個字串,且PLC會停止送出(因為D100被我切
為0,送出byte=0),一直保持在等待資料的狀態直到我電腦回送字串給PLC,M8123會on一下,電腦送
出來的資料會紀錄到D201裡,然後我的邏輯就會把M800給off,然後再把送出字串數D100恢復為8,這
樣下次啟動M800,RS指令就可以在自動送出8個byte的資料了。

可是我今天改為a方案時,發生問題了。
我一樣PLC命令送出8個byte的字串01 03 00 00 00 01 84 0A 。我電腦接收端所接收到的會不只八個byte
,都還超過。電腦接收到的下:01 03 00 00 00 01 84 0A 01 03 00 00 00 01 84 0A 01 03 00 00 00 01 84 FF
在我的程式裡明明送出的byte已經限定8個byte,可是不知道為啥卻會跑那個多個。而且更奇怪的是,我
D101開始所送出的資料,卻會被自己D201所接收回來。在B方案時都不會有這種接收到自己資料的問題。
因此當然我的M8123也會自動判別接收到資料而off掉M800停止RS指令,造成無法接收電腦資料。而且因為
送出的字串錯誤,電腦端也無法解讀。而且像上面電腦接收回來的例子,最後那個byte "FF"我也搞不懂從哪
來的,我明明只送出01 03 00 00 00 01 84 0A 就算重複送也沒有送FF這個字串呀。

我想A或B方案對PLC來說485模組應該都是ch1,所以程式應該可以直接使用才對。
目前問題,不曉得哪位前輩可以替我解惑呢?我有上傳我目前寫得RS的專案,若大家有興趣一起討論也歡迎轉載。
附件: 485BD走RS指令.rar (11 K) 下载次数:516
网站提示: 请不要用迅雷下载附件,容易出错
ymmfa
不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
级别: 管理员

精华主题: 8 篇
发帖数量: 9670 个
工控威望: 8567 点
下载积分: 16702 分
在线时间: 5326(小时)
注册时间: 2006-08-10
最后登录: 2024-11-26
查看ymmfa的 主题 / 回贴
1楼  发表于: 2010-11-18 16:29
FX3U-485ADP-MB  是MODBUS的  和485BD的不一样呵
如果用FX3U-485ADP 可能效果和485BD时的比较接近
特别提醒大家:
偶尔修改下自己的密码,以防被盗
不要在多个网站都用一样账号密码
偶尔还是要发发贴,回回贴,不要总潜水
sdwufei
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 130 点
下载积分: 10381 分
在线时间: 168(小时)
注册时间: 2010-07-20
最后登录: 2024-07-28
查看sdwufei的 主题 / 回贴
2楼  发表于: 2010-11-18 17:53
現在好像已經不出FX3U-485ADP 了,出的幾乎都是FX3U-485ADP-MB了。
而且我沒有用到MODBUS的功能,我只是很單純的使用RS丟串列資料的功能而已。
更怪得是485ADP-MB是正常的,485BD反而是不正常的
暈倒~

最不瞭解的就是為啥用485BD會收到自己送出去的資料,而且最後一個byte的字串還
不知道從哪變出來的。而485ADP則不會收到自己的資料。資料都正確的。