上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ezpos
註冊時間: 2011-04-20 文章: 323
第 1 樓
|
發表於: 星期日 五月 08, 2011 9:01 pm 文章主題: 使用wp.dll 透過RS232連結電子秤的問題 |
|
|
1.使用wp.dll 透過com1讀取電子秤的資訊.都能讀到.
可是重新開的時候.卻發現到 com1被佔用了
重新開機前.執行讀取電子秤.離開.在進入是正常的
離開電子秤程式.利用超級終端機也是正常的
2.我是用以下函數
使用WPOpenPort(this_Port, "19200,N,8,1") 讀取電子秤
程式離開時 是用 WPClosePort(this_Port)
3.不知道為何??還會佔用!! _________________ ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我
http://www.twelife.com 台灣生活網 |
|
回頂端 |
|
|
kalok
註冊時間: 2010-08-26 文章: 284
第 2 樓
|
發表於: 星期日 五月 08, 2011 10:00 pm 文章主題: |
|
|
程式其他部份有沒有用過 COM1? |
|
回頂端 |
|
|
spfrk
註冊時間: 2004-11-08 文章: 161
第 3 樓
|
發表於: 星期日 五月 08, 2011 10:53 pm 文章主題: |
|
|
應該不會發生這種情形,
我也有在用磅秤機,超商
超市,飲料店, 餐廳系統,
我都有在用,com1 可能
被其他裝置佔用了
WP.DLL 撰寫者 |
|
回頂端 |
|
|
ezpos
註冊時間: 2011-04-20 文章: 323
第 4 樓
|
發表於: 星期一 五月 09, 2011 12:27 am 文章主題: |
|
|
kalok 寫到: | 程式其他部份有沒有用過 COM1? |
沒有其他程式??我通常是用vfp程式去試com1的(電子秤).
關閉後.再用 超級終端機 測試.是正常的...
如果沒有關閉vfp程式(電子秤).超級終端機會報以程式佔用com1 _________________ ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我
http://www.twelife.com 台灣生活網 |
|
回頂端 |
|
|
ezpos
註冊時間: 2011-04-20 文章: 323
第 5 樓
|
發表於: 星期一 五月 09, 2011 12:32 am 文章主題: |
|
|
spfrk 寫到: | 應該不會發生這種情形,
我也有在用磅秤機,超商
超市,飲料店, 餐廳系統,
我都有在用,com1 可能
被其他裝置佔用了
WP.DLL 撰寫者 |
前輩你好.
1.我現在有把程式作修改.用一個timer
如果動作.就先把timer關閉.
執行com1讀取電子秤.結束後關閉com1
然後 timer 再啟動
就這樣一直運做....
2.上述電子秤程式離開後.用超級終端機看 連線.是可以看到 電子秤傳來的資訊
3.電腦關機後.啟動超級終端機會發覺 com1被佔用..我移除com1.再讓com1產生...就正常了...
4.一但使用 wp就開始有這狀況 _________________ ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我
http://www.twelife.com 台灣生活網 |
|
回頂端 |
|
|
spfrk
註冊時間: 2004-11-08 文章: 161
第 6 樓
|
發表於: 星期一 五月 09, 2011 10:27 pm 文章主題: |
|
|
問題可能出現在 timer 上,
使用的磅秤機是, 如有重量發現,
則不停的向 RS232 發送訊號,我的寫法是
先在電腦側選好"秤重商品"後, 清除 RS232後
才開始讀取資料,讀到完整資料就關閉 RS232,
這樣就不用 TIMER 來控制了,目前在我所使用的
客戶中都很正常. |
|
回頂端 |
|
|
kalok
註冊時間: 2010-08-26 文章: 284
第 7 樓
|
發表於: 星期一 五月 09, 2011 11:17 pm 文章主題: |
|
|
請問 spfrk, 你是否使用一個類似 for ... endfor 在一段短時間內讀取 COM port 資料 |
|
回頂端 |
|
|
spfrk
註冊時間: 2004-11-08 文章: 161
第 8 樓
|
發表於: 星期二 五月 10, 2011 9:05 am 文章主題: |
|
|
RS232 PORT 開啟後, 預設值會有 1K BYTES BUFFER
除非資料量很大,不然是不需要使用迴圈或TIMER 來讀
取資料的. |
|
回頂端 |
|
|
ezpos
註冊時間: 2011-04-20 文章: 323
第 9 樓
|
發表於: 星期日 五月 15, 2011 12:32 am 文章主題: |
|
|
請問 前輩們.
1.電子秤是採用 穩定傳輸.還是連續傳送
我是採用 連續傳送的...
2.今天我測試.都用超級終端機.接收.會有這個狀況
我發覺連續傳送.會造成 電腦鎖住那個port
我改成其他模式看看 _________________ ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我
http://www.twelife.com 台灣生活網 |
|
回頂端 |
|
|
ezpos
註冊時間: 2011-04-20 文章: 323
第 10 樓
|
發表於: 星期日 五月 15, 2011 12:55 am 文章主題: |
|
|
找出問題了.不是程式的問題.是電子秤的問題
因為連續傳送會導致com接收背景程式...
所以就被佔用了..解決是電子秤不要先開啟 _________________ ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我
http://www.twelife.com 台灣生活網 |
|
回頂端 |
|
|
kalok
註冊時間: 2010-08-26 文章: 284
第 11 樓
|
發表於: 星期日 五月 22, 2011 6:06 am 文章主題: |
|
|
spfrk 寫到: | RS232 PORT 開啟後, 預設值會有 1K BYTES BUFFER
除非資料量很大,不然是不需要使用迴圈或TIMER 來讀
取資料的. |
我用迴圈在短時間內通過COM port讀取printer狀態, 例如是否 online, 如只讀一次, 卻讀不到資料.
請問你的 wp.dll 適用於那些電子秤? |
|
回頂端 |
|
|
spfrk
註冊時間: 2004-11-08 文章: 161
第 12 樓
|
|
回頂端 |
|
|
ezpos
註冊時間: 2011-04-20 文章: 323
第 13 樓
|
發表於: 星期三 五月 25, 2011 2:06 am 文章主題: |
|
|
我使用uwe 跟EXCELL 透過wp.dll接收資料
我建議 使用EXCELL 比較好.他的電子秤上方秤物體是四各角固定的.uwe只有中間的柱子
EXCELL 比較像是傳統的菜市場用.接受度好!!
如果有需要的狐友同行.可以聯繫我~~~會有優待價格喔~~~~
底下有網址 _________________ ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我
http://www.twelife.com 台灣生活網 |
|
回頂端 |
|
|
hoyawoof
註冊時間: 2011-05-30 文章: 1
第 14 樓
|
發表於: 星期一 五月 30, 2011 1:15 pm 文章主題: |
|
|
http://support.microsoft.com/kb/283063
因為磅秤設定為一直傳送, 所以windows 系統會把這個com port當作滑鼠
這個問題在windows xp 也會發生, 磅秤的通訊設定如果
baud rate 如果設定在2400 ~ 9600時會發生
往上或往下設定應該可避開這個問題
如果你開機時將磅秤電源關掉, 開完機再打開也可以 |
|
回頂端 |
|
|
richard_chen0122
註冊時間: 2009-10-04 文章: 11
第 15 樓
|
發表於: 星期二 六月 16, 2015 2:56 pm 文章主題: |
|
|
我也使用EXCELL的電子磅秤,已經將COM1的BAUD RATE 降低到1200,但是,VFP還是讀不到任何的資料,穩定傳送與連續傳送的方式都測試過,都讀不到資料,請幫助一下。系統是XP,VFP9.0。
搭配 WP.DLL 程式如下:
Func read_ComPort
Para vCom, vSetting
Local vstr, vPort, vCntNow, vsec, vok, vspace, vkey
Declare Integer WPOpenPort In Wp.Dll Integer, String
Declare Integer WPSendPort In Wp.Dll Integer, String, Integer
Declare Integer WPReadPort In Wp.Dll Integer, String @, Integer
Declare Integer WPClosePort In Wp.Dll Integer
Declare Integer WPReadStr In Wp.Dll Integer, String @
vok = WPOpenPort(1, "1200,N,8,1") && Com1 通訊埠
*!* vok = WPOpenPort(vCom, vSetting) && Com1 通訊埠
If vok < 1
Messagebox("開啟通信埠失敗")
Return '0'
Else
vspace = Space(512)
*!* vok = WPReadPort(vCom, @vspace, 256)
vok = WPReadStr(vCom, @vspace)
If vok=0
Messagebox("讀取通信埠失敗")
vok = WPClosePort(vCom)
Return '0'
ELSE
vok = WPClosePort(vCom)
Return vspace
Endif
Endif
vok = WPClosePort(vCom) |
|
回頂端 |
|
|
|