2018年6月18日 星期一

[CUDA]下載及安裝、vs設定

─ 下載
     目前 NVIDIA 提供的 CUDA Toolkit(可從 https://developer.nvidia.com/cuda-downloads 下載)支援 Windows (32 bits 及 64 bits 版本)及許多不同的 Linux 版本。
上圖是Nvidia cuda toolkit 下載的頁面,請依自己的作業系統選擇即可,最下面 「Installer Type」 是指安裝的方式:「exe(network)」是指網路開著,所有安裝的東西就是一邊安裝一邊下載,所以安裝檔的容量比較小;「exe(local)」是指把所有要安裝的東西一次下載完,所以檔案比較大,筆者是選擇local的。

─ 安裝

2018年6月9日 星期六

機台程式讀PLC M點位加速的秘訣

一般來說,讀M點位都是使用GetDevice這個方法,不過,當用for迴圈使用GetDevice或是短時間內使用GetDevice ( e.g. 在timer中使用,而且timer的inteval極短,200毫秒之類的 ) 時,介面程式會當掉,或是執行緒被咬死。
此時有個解法:使用讀D值的方法ReadDevice。
使用ReadDevice這個方法讀取完後,再一個bit一個bit逐一讀取。
不過要注意,一個long或int只能接一個D值,但一個long或integer有4個byte,而一個D卻只有2個byte,所以D值只會填在前面兩個byte(低位的部分),如下圖

vb6關掉winsock的介面導致連線斷線的解決方法

—問題描述
我們公司的Scan主機程式(主控)是使用VB6撰寫,最近有個案子是要與客戶自製的AI PC交握、傳資料。在測交握時發現,當含有Scan與AI PC通訊的Winsock介面被關掉時,Scan與AI PC的通訊會斷掉,這原本是非常合理的事,但在我們檢查機台上是個極不方便的設定。我們不希望同時間顯示太多介面給客戶看,卻又要保持連線,後來參考了前輩們與子機連線的寫法,再加上自己查的資料解決了這一個事件。

2017年8月26日 星期六

使用Visual Studio 2015 C++建立dll檔 ─ dll檔的建立

什麼是dll?

dll是 Dynamic-Link Library的縮寫,中文翻譯為「動態連結函式庫」,在windows 的環境下,副檔名是「.dll」;在linux的環境下,副檔名是「.xo」。dll檔的概念有點像是函式,但與函式不同,函式在編譯時就會一起被編譯,而dll檔是在程式之外的函式,在程式執行的階段若有用到dll中的函式,dll檔才會被載入、執行。[1]
使用dll檔可以節省應用程式所需的磁碟的大小及記憶體空間,而且移植性高,有利於將程式模組化,若有其他支程式需要用到dll檔中的函式,載入dll檔即可。dll檔還有另一個作用,就是可以隱藏函式細節,如果有人要某個功能,可以只將dll檔給對方,並將函式接口告訴對方,而對方無法一窺作者的寫法。

2017年7月30日 星期日

傅氏光學 ─ 繞射簡介

繞射是一個非常特別的物理現象,是當光傳播的橫向方向被局限時才有機會看到,對於人們物理學與工程中處理波的傳遞時,扮演著極為重要的角色。我們定義所謂的繞射現象為,光在行進中,在與光波波長大小相當的障礙物附近,光的傳播方向發生變化的現象稱之;是一種複雜的光學現象。有趣的是,並不是只有針孔才有繞射,而是所有光的行進皆有繞射。