日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

10怎么设置pg接口_西门子S7300 PLC时间日期怎么读取?

發(fā)布時間:2025/3/11 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10怎么设置pg接口_西门子S7300 PLC时间日期怎么读取? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

很多情況下我們都需要根據(jù)時間日期的變化來改變自動化系統(tǒng)的控制方式,這時候我們就需要將這些時間和日期的信息,從PLC中調(diào)出,下面我們就一起來學(xué)習(xí),S7-300PLC是將時間日期信息如何進(jìn)行存儲的?

簡單應(yīng)用

01

S7-300PLC中實際上系統(tǒng)的時間日期信息是存儲在主程序OB1的本地數(shù)據(jù)中,具體位置是OB1的LB12到LB18,分別存儲的是年、月、日、小時、分鐘、秒、毫秒、信息如圖 1-1所示:

那么我們?nèi)绻枰獙@些信息進(jìn)行提取最簡單的方法就是使用MOVE指令把這些L區(qū)的數(shù)據(jù)讀到其他區(qū)域比如說M區(qū)如圖 1-2所示:

這里我們必須要注意所有時間的顯示都是以16進(jìn)制的方式而不是10進(jìn)制的方式顯示的。

高級應(yīng)用

02

一、數(shù)據(jù)類型:DATE_AND_TIME

DATE_AND_TIME是Step7四種復(fù)雜數(shù)據(jù)類型(DATE_AND_TIME、STRING、ARRAY及STRUCT)的一種,表示由日期和時間組成的時間,可以使用縮寫DT來代替DATE_AND_TIME。

DATE_AND_TIME變量由8個字節(jié)構(gòu)成,分別代表年、月、日、時、分、秒、毫秒,最后一個字節(jié)0-3位代表星期,4-7位表示毫秒,數(shù)據(jù)以BCD碼表示。如圖1所示,為DATE_AND_TIME的數(shù)據(jù)格式。

DATE_AND_TIME數(shù)據(jù)類型的取值范圍為:

最小:DT#1900-01-01-0:00:00.000

最大:DT#2089-12-31-23:59:59.999

二、設(shè)置系統(tǒng)時鐘

1、在聯(lián)機的情況下,通過STEP7軟件菜單指令直接設(shè)定系統(tǒng)時鐘,如圖2.1、圖2.2、圖2.3所示。(前提:PG/PC要與實際PLC聯(lián)網(wǎng),或打開仿真器PLCSIM,即要處于"聯(lián)機"狀態(tài))

圖2.1 菜單命令設(shè)定系統(tǒng)時鐘(一)

圖2.2 菜單命令設(shè)定系統(tǒng)時鐘(二)

圖2.3 菜單命令設(shè)定系統(tǒng)時鐘(三)

上述三種方法,都會彈出"設(shè)置時鐘"的對話框,如圖3所示,勾選"來自PG/PC",使用計算機時鐘來同步PLC時鐘。

圖3 與PG/PC時鐘同步

2、使用SFC0設(shè)置系統(tǒng)時間

除了使用PG/PC來同步系統(tǒng)時鐘外,我么也可以使用系統(tǒng)功能SFC0來自定義系統(tǒng)時鐘,方法如下:

1) 首先,創(chuàng)建一個DB塊,如:DB20。并在其中定義一個DATE_AND_TIME變量。

圖4 定義DATE_AND_TIME變量

2) 在OB1中編寫代碼,將參考時間以16進(jìn)制BCD碼的形式賦值給DATE_AND_TIME變量的各個字節(jié)。第7個字節(jié)包含毫秒的個位值及星期,一般不需要設(shè)定,系統(tǒng)會根據(jù)給定的年、月、日來自己計算星期值并賦值。如圖5所示。

圖5 為DATE_AND_TIME變量賦值

有很多初學(xué)者在這里常常會犯疑惑,為什么此時"ref_time"中的星期數(shù)不對呢?(如圖5所示)。其實,ref_time中并不會顯示當(dāng)前的星期數(shù),我們需要重新讀取系統(tǒng)時鐘,才能獲得正確的星期值,這點我們將在接下來的"讀取系統(tǒng)時鐘"中繼續(xù)討論(圖7、圖9)。

3) 調(diào)用SFC0,將定義好的DATE_AND_TIME變量值(這里為DB20中的"ref_time")設(shè)定為系統(tǒng)時鐘,如圖5所示。當(dāng)M0.0檢測到上升沿信號后,系統(tǒng)的時鐘將變?yōu)?#34;time.ret_time"所指定的值,本例中為:2018-12-30 14:39:20。

圖5 調(diào)用SFC0,自定義系統(tǒng)時鐘

三、讀取系統(tǒng)時鐘

1、使用OB1中的臨時量 “OB1_DATE_TIME"來讀取系統(tǒng)時鐘;

OB1中定義了名為"OB1_DATE_TIME"的臨時變量,如圖6所示。OB1的每個掃描周期都會讀取系統(tǒng)時鐘,并存儲到"OB1_DATE_TIME"中。因此,通過該臨時變量即可得到系統(tǒng)時鐘。

圖6 臨時變量:"OB1_DATE_TIME"

圖7 通過"OB1_DATE_TIME"讀取系統(tǒng)時鐘

2、調(diào)用SFC1來讀取系統(tǒng)時鐘

系統(tǒng)功能SFC1是專門用來讀取系統(tǒng)時鐘的,程序如如8所示。讀取的系統(tǒng)時鐘值存放于DB20中DBX8.0開始的8個字節(jié)空間中,如圖9所示。

圖8 調(diào)用SFC1來讀取系統(tǒng)時鐘

圖9 調(diào)用SFC1來讀取系統(tǒng)時鐘

結(jié)合圖7、圖9,我們就可以解開圖5的疑惑了。我們自定義的系統(tǒng)時鐘后,系統(tǒng)會自動計算出"星期值",我們讀取當(dāng)前系統(tǒng)時鐘時,自然會讀出正確的"星期值",因此,在給定系統(tǒng)時間時,僅需要給出年、月、日、小時、分鐘、秒即可。

文章來源:綜合網(wǎng)絡(luò),侵權(quán)聯(lián)刪,謝謝。

戳這里,實用案例

總結(jié)

以上是生活随笔為你收集整理的10怎么设置pg接口_西门子S7300 PLC时间日期怎么读取?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。