控制器的制造方法
【專利摘要】PLC等控制器(104)存儲(chǔ)用于表示任務(wù)執(zhí)行條件的任務(wù)執(zhí)行條件管理表(242),并按照任務(wù)執(zhí)行條件周期性地執(zhí)行程序??刂破?104)提供用于改變?nèi)蝿?wù)執(zhí)行條件的設(shè)定用指令(320)。用戶通過(guò)輔助裝置(300)等將設(shè)定用指令(320)加入到用戶程序(236)中??刂破?104),通過(guò)執(zhí)行用戶程序(236)中含有的用于改變各任務(wù)的優(yōu)先級(jí)、任務(wù)的周期等任務(wù)執(zhí)行條件的指令(320),從而針對(duì)指令所涉及的任務(wù),來(lái)更新任務(wù)執(zhí)行條件管理表(242),并按照更新后的任務(wù)執(zhí)行條件執(zhí)行程序。
【專利說(shuō)明】
控制器
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種包括周期性或事件性地執(zhí)行用戶程序的控制裝置的控制系統(tǒng)、及控制系統(tǒng)的信息處理裝置。
【背景技術(shù)】
[0002]對(duì)很多在生產(chǎn)現(xiàn)場(chǎng)使用的機(jī)器、設(shè)備而言,通常,通過(guò)主要由可編程邏輯控制器(Programmable Logic Controller;以下也稱“PL(T )等控制裝置(控制器)構(gòu)成的控制系統(tǒng)來(lái)進(jìn)行控制。
[0003]例如,PLC由含有執(zhí)行用戶程序的微處理器的中央處理單元(CPU ,CentralProcessing Unit)單元、負(fù)責(zé)來(lái)自外部開關(guān)或傳感器的輸入信號(hào)和向外部繼電器或執(zhí)行器的輸出信號(hào)的輸入輸出(1,Input Output)單元等的多個(gè)單元構(gòu)成。在這些單元之間,針對(duì)每個(gè)用戶程序執(zhí)行周期,通過(guò)PLC系統(tǒng)總線和/或現(xiàn)場(chǎng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換,并同時(shí)由PLC執(zhí)行控制操作。
[0004]PLC的CPU單元按照任務(wù)的分配執(zhí)行用戶程序、系統(tǒng)程序等程序。在PLC中,作為通過(guò)任務(wù)執(zhí)行的處理,例如有:CPU單元與從屬設(shè)備或輸入/輸出(1/0)單元進(jìn)行數(shù)據(jù)輸入輸出的輸入/輸出刷新、用戶程序的執(zhí)行、接受用戶程序指令而執(zhí)行的運(yùn)動(dòng)控制(Mot1nControl)、數(shù)據(jù)跟蹤處理、以及其他處理。
[0005]任務(wù)包括:PLC周期性反復(fù)執(zhí)行的定周期任務(wù)、PLC在預(yù)先設(shè)定的條件成立時(shí)僅執(zhí)行I次的事件性任務(wù)等。在各任務(wù)中,設(shè)定有應(yīng)當(dāng)執(zhí)行的優(yōu)先級(jí)和任務(wù)周期。CPU單元根據(jù)任務(wù)的優(yōu)先級(jí)來(lái)執(zhí)行各程序。
[0006]作為按照任務(wù)的分配進(jìn)行操作的PLC,例如有日本專利第4894961號(hào)公報(bào)(專利文獻(xiàn)I)。在專利文獻(xiàn)I中,記載了一種PLC的CPU單元,其中,考慮到控制程序的執(zhí)行時(shí)間可能會(huì)不時(shí)地延長(zhǎng),可將用于PLC的CPU單元所執(zhí)行的控制數(shù)據(jù)的輸入和輸出的通信周期,設(shè)定成比控制程序的最大執(zhí)行時(shí)間更短的固定時(shí)間。在專利文獻(xiàn)I中,記載有:當(dāng)存在任務(wù)執(zhí)行優(yōu)先級(jí)尚的程序和優(yōu)先級(jí)低的程序時(shí),在一定的周期時(shí)間內(nèi),先執(zhí)行優(yōu)先級(jí)尚的程序,該程序執(zhí)行結(jié)束后,再開始執(zhí)行優(yōu)先級(jí)低的程序。
[0007]現(xiàn)有技術(shù)文獻(xiàn)
[0008]專利文獻(xiàn)
[0009]專利文獻(xiàn)1:日本專利第4894961號(hào)公報(bào)
【發(fā)明內(nèi)容】
[0010]發(fā)明要解決的課題
[0011]然而,存在根據(jù)控制器的使用情況不同而想要優(yōu)先的程序和程序的周期時(shí)間等不同的情況。例如,在啟動(dòng)控制器時(shí)、與上位系統(tǒng)通信時(shí)及要求高速處理的情況下,會(huì)出現(xiàn)程序所要求的周期時(shí)間、優(yōu)先級(jí)不同的情況。
[0012]因此,本發(fā)明的目的在于提供一種技術(shù),根據(jù)該技術(shù),在控制器中即使程序正在操作的情況下,也可改變用于執(zhí)行程序的執(zhí)行條件,由此提高用戶的便利性。
[0013]解決課題的方法
[0014]根據(jù)本發(fā)明的一個(gè)方面所涉及的控制器,用于控制對(duì)象設(shè)備??刂破骶哂?用于存儲(chǔ)包含用戶程序的多個(gè)程序和表示任務(wù)執(zhí)行條件的任務(wù)信息的存儲(chǔ)部;以及,按照任務(wù)信息所表示的執(zhí)行條件周期性地執(zhí)行程序的控制部??刂破魍ㄟ^(guò)控制部周期性地執(zhí)行用戶程序來(lái)控制對(duì)象設(shè)備。用戶程序中可含有用于改變?nèi)蝿?wù)執(zhí)行條件的設(shè)定用指令。控制部通過(guò)執(zhí)行用戶程序中含有的設(shè)定用指令,來(lái)更新存儲(chǔ)部的任務(wù)信息,并按照更新后的任務(wù)執(zhí)行條件執(zhí)行程序。
[0015]優(yōu)選的,任務(wù)信息所表示的執(zhí)行條件中,含有執(zhí)行任務(wù)的優(yōu)先級(jí),控制部按照任務(wù)的優(yōu)先級(jí)周期性執(zhí)行程序,設(shè)定用指令中含有改變?nèi)蝿?wù)的優(yōu)先級(jí)的指令,控制部也可以通過(guò)執(zhí)行用戶程序中含有的改變?nèi)蝿?wù)的優(yōu)先級(jí)的指令,來(lái)改變指令所涉及的的任務(wù)的優(yōu)先級(jí),從而更新任務(wù)信息。
[0016]優(yōu)選的,任務(wù)信息所表示的執(zhí)行條件中含有執(zhí)行任務(wù)的周期,設(shè)定用指令中含有改變執(zhí)行任務(wù)的周期的指令,控制部也可以通過(guò)執(zhí)行用戶程序中含有的改變?nèi)蝿?wù)的周期的指令,來(lái)改變指令所涉及的任務(wù)的周期,從而更新任務(wù)信息。
[0017]優(yōu)選的,任務(wù)信息所表示的執(zhí)行條件中,含有執(zhí)行任務(wù)的優(yōu)先級(jí)和執(zhí)行任務(wù)的周期,控制部按照任務(wù)的優(yōu)先級(jí)和周期,周期性地執(zhí)行程序,設(shè)定用指令中含有改變?nèi)蝿?wù)優(yōu)先級(jí)的指令和改變?nèi)蝿?wù)的周期的指令中的至少任意一個(gè),控制部也可以通過(guò)執(zhí)行用戶程序中含有的改變?nèi)蝿?wù)的優(yōu)先級(jí)的指令和改變的任務(wù)周期的指令,來(lái)改變指令所涉及的任務(wù)的優(yōu)先級(jí)或周期中的至少任意一個(gè),從而更新任務(wù)信息。
[0018]發(fā)明效果
[0019]基于本發(fā)明,可以從用戶程序改變執(zhí)行各程序的優(yōu)先級(jí)、由程序運(yùn)行的控制器的周期,能夠提高控制器的運(yùn)行效率。
【附圖說(shuō)明】
[0020]圖1是示出了本發(fā)明實(shí)施方式中控制系統(tǒng)I的系統(tǒng)構(gòu)成的示意圖。
[0021 ]圖2是示出了表示本發(fā)明實(shí)施方式的PLC100的主要部分的硬件構(gòu)成的示意圖。
[0022]圖3是示出了本發(fā)明實(shí)施方式的PLC100的軟件構(gòu)成的示意圖。
[0023]圖4是示出了任務(wù)執(zhí)行條件管理表242的圖。
[0024]圖5是示出了各任務(wù)的執(zhí)行順序的一個(gè)例子的圖。
[0025]圖6是示出了用于改變?nèi)蝿?wù)的執(zhí)行條件的指令的例子的圖。
[0026]圖7是示出了CPU單元104執(zhí)行用戶程序中含有的指令而改變?nèi)蝿?wù)優(yōu)先級(jí)時(shí)各任務(wù)的執(zhí)行順序的圖。
[0027]圖8是示出了CPU單元104執(zhí)行用戶程序中含有的指令而改變?nèi)蝿?wù)周期時(shí)各任務(wù)的執(zhí)行順序的圖。
[0028]圖9是示出了CPU單元104執(zhí)行用戶程序中含有的指令而改變?nèi)蝿?wù)優(yōu)先級(jí)和任務(wù)周期時(shí)各任務(wù)的執(zhí)行順序的圖。
【具體實(shí)施方式】
[0029]參照附圖對(duì)本發(fā)明實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,對(duì)圖中相同或等同的部分,用相同符號(hào)表示,并不再進(jìn)行重復(fù)說(shuō)明。
[0030]<Α.系統(tǒng)構(gòu)成>
[0031]首先,對(duì)本實(shí)施方式中控制系統(tǒng)的系統(tǒng)構(gòu)成進(jìn)行說(shuō)明。在本實(shí)施方式中,以控制機(jī)器、設(shè)備等被控對(duì)象的可編程邏輯控制器(PLC)作為控制裝置的典型例子進(jìn)行說(shuō)明。然而,本發(fā)明的控制裝置不限于PLC,可適用于各種控制裝置。
[0032]圖1是示出本發(fā)明實(shí)施方式中控制系統(tǒng)I的系統(tǒng)構(gòu)成的示意圖。參照?qǐng)D1,控制系統(tǒng)I包括PLC100、連接到PLC100的輔助裝置300和接受來(lái)自PLC100的訪問(wèn)的數(shù)據(jù)庫(kù)裝置400。PL100周期性或事件性地執(zhí)行后述的用戶程序。該用戶程序中可以含有訪問(wèn)指令,PLC100可以按照該訪問(wèn)指令訪問(wèn)數(shù)據(jù)庫(kù)裝置400。即,PLC100和數(shù)據(jù)庫(kù)裝置400配置成可通過(guò)以太網(wǎng)(Ethernet,注冊(cè)商標(biāo))等網(wǎng)絡(luò)112互相交換數(shù)據(jù)。
[0033]輔助裝置300是可連接到PLC100的信息處理裝置的典型例子。輔助裝置300通過(guò)連接電纜114連接到PLC100,提供與PLC100之間的各種參數(shù)的設(shè)定、程序設(shè)計(jì)、監(jiān)視、調(diào)試等功能。通常,PLC100和輔助裝置300之間以能夠按照USB(Universal Serial Bus)標(biāo)準(zhǔn)進(jìn)行通信的方式構(gòu)成。
[0034]PLC100含有執(zhí)行控制運(yùn)算的CPU單元104和一個(gè)以上的10(Input/0utput:輸入/輸出)單元106。這些單元以能夠通過(guò)PLC系統(tǒng)總線108互相交換數(shù)據(jù)的方式構(gòu)成。另外,由電源單元102向這些單元供應(yīng)適當(dāng)電壓的電源。
[0035]在控制系統(tǒng)I中,PLC100通過(guò)(經(jīng)由PLC系統(tǒng)總線108連接的)10單元106,和/或,通過(guò)現(xiàn)場(chǎng)總線110,與各種現(xiàn)場(chǎng)設(shè)備之間進(jìn)行數(shù)據(jù)交換。這些現(xiàn)場(chǎng)設(shè)備包括對(duì)被控對(duì)象進(jìn)行某些處理的執(zhí)行器、以及用于從被控對(duì)象獲取各種信息的傳感器等。圖1中,作為這種現(xiàn)場(chǎng)設(shè)備的一個(gè)例子,包括檢測(cè)開關(guān)10、繼電器20和對(duì)電機(jī)32進(jìn)行驅(qū)動(dòng)的伺服電機(jī)驅(qū)動(dòng)器30。另夕卜,PLC100也可以通過(guò)現(xiàn)場(chǎng)總線110與遠(yuǎn)程1終端200相連。遠(yuǎn)程1終端200基本上與1單元106相同,進(jìn)行與一般的輸入輸出處理相關(guān)的處理。更具體而言,遠(yuǎn)程1終端200包括用于進(jìn)行現(xiàn)場(chǎng)總線110的數(shù)據(jù)傳輸相關(guān)的處理的通信連接器202和一個(gè)以上的1單元204。這些單元配置成通過(guò)遠(yuǎn)程1終端總線208互相交換數(shù)據(jù)。
[0036]<B.PLC100 的構(gòu)成 >
[0037]下面,對(duì)本實(shí)施方式中PLC100的構(gòu)成進(jìn)行說(shuō)明。圖2是示出了表示本發(fā)明實(shí)施方式的PLC100的主要部分的硬件構(gòu)成的示意圖。圖3是表示本發(fā)明實(shí)施方式中的PLC100的軟件構(gòu)成的示意圖。
[0038]參照?qǐng)D2,對(duì)PLC100的CI3U單元104的硬件構(gòu)成進(jìn)行說(shuō)明。⑶U單元104包括處理器120、芯片組122、系統(tǒng)時(shí)鐘124、主存儲(chǔ)器126、非易失性存儲(chǔ)器128、USB連接器130、PLC系統(tǒng)總線控制器140、現(xiàn)場(chǎng)總線控制器150、上位通信控制器160、以及存儲(chǔ)卡接口 170。芯片組122和其他元件之間通過(guò)各種總線分別結(jié)合。
[0039]通常,處理器120和芯片組122按照通用的計(jì)算機(jī)架構(gòu)構(gòu)成。即,處理器120解讀并執(zhí)行由芯片組122按照內(nèi)部時(shí)鐘依次提供的指令代碼。芯片組122和與之相連接的各種元件之間相互交換內(nèi)部數(shù)據(jù),同時(shí)生成處理器120所需的指令代碼。系統(tǒng)時(shí)鐘124生成預(yù)定周期的系統(tǒng)時(shí)鐘,并提供給處理器120。芯片組122具有對(duì)通過(guò)處理器120的運(yùn)算處理執(zhí)行結(jié)果得到的數(shù)據(jù)等進(jìn)行緩存的功能。
[0040]CPU單元104具有作為存儲(chǔ)單元的主存儲(chǔ)器126和非易失性存儲(chǔ)器128。主存儲(chǔ)器126為易失性存儲(chǔ)區(qū)域,在保持應(yīng)當(dāng)由處理器120執(zhí)行的各種程序的同時(shí),作為各種程序執(zhí)行時(shí)的工作存儲(chǔ)器使用。非易失性存儲(chǔ)器128非易失性地保存操作系統(tǒng)(OperatingSystem)、系統(tǒng)程序、用戶程序、數(shù)據(jù)定義信息、日志信息等。
[0041 ] USB連接器130是連接輔助裝置300和CPU單元104的接口。通常,由輔助裝置300傳輸?shù)目蓤?zhí)行程序等通過(guò)USB連接器130導(dǎo)入CPU單元104。
[0042]CPU單元104具有作為通信單元的PLC系統(tǒng)總線控制器140、現(xiàn)場(chǎng)總線控制器150和上位通信控制器160。這些通信電路進(jìn)行數(shù)據(jù)的發(fā)送和接收。
[0043]PLC系統(tǒng)總線控制器140對(duì)經(jīng)由PLC系統(tǒng)總線108的數(shù)據(jù)的交換進(jìn)行控制。更具體地講,PLC系統(tǒng)總線控制器140包括緩沖存儲(chǔ)器142、PLC系統(tǒng)總線控制電路144、以及DMA(Dynamic Memory Access:動(dòng)態(tài)內(nèi)存訪問(wèn))控制電路146 JLC系統(tǒng)總線控制器140通過(guò)PLC系統(tǒng)總線連接器148與PLC系統(tǒng)總線108連接。
[0044]現(xiàn)場(chǎng)總線控制器150包括緩沖存儲(chǔ)器152、現(xiàn)場(chǎng)總線控制電路154、以及DMA控制電路156?,F(xiàn)場(chǎng)總線控制器150通過(guò)現(xiàn)場(chǎng)總線連接器158與現(xiàn)場(chǎng)總線110連接。上位通信控制器160包括緩沖存儲(chǔ)器162、上位通信控制電路164、DMA控制電路166。上位通信控制器160通過(guò)上位通信連接器168與網(wǎng)絡(luò)112連接。
[0045]存儲(chǔ)卡接口 170連接處理器120和相對(duì)于CPU單元104可拆卸的存儲(chǔ)卡172。
[0046]<C.CPU單元的軟件構(gòu)成>
[0047]下面,參照?qǐng)D3,對(duì)用于提供本實(shí)施方式中的各種功能的軟件組進(jìn)行說(shuō)明。在適當(dāng)?shù)臅r(shí)間讀取這些軟件中包含的指令代碼,并由CPU單元104的處理器120執(zhí)行。
[0048]圖3是示出了本發(fā)明實(shí)施方式中在CPU單元104執(zhí)行的軟件構(gòu)成的示意圖。參照?qǐng)D3,作為由CPU單元104執(zhí)行的軟件,有三個(gè)層次,即實(shí)時(shí)操作系統(tǒng)200、系統(tǒng)程序210和用戶程序 236。
[0049]實(shí)時(shí)操作系統(tǒng)200是根據(jù)CPU單元104的計(jì)算機(jī)架構(gòu)設(shè)計(jì)的,提供了處理器120用于執(zhí)行系統(tǒng)程序210和用戶程序236的基本執(zhí)行環(huán)境。該實(shí)時(shí)操作系統(tǒng)通常由PLC的制造商或?qū)iT軟件公司等提供。
[0050]系統(tǒng)程序210是用于提供PLC100的功能的軟件組。具體地講,系統(tǒng)程序210包括調(diào)度程序212、輸出處理程序214、輸入處理程序216、序列指令運(yùn)算程序232、運(yùn)動(dòng)運(yùn)算程序234和其他系統(tǒng)程序220。需要說(shuō)明的是,由于輸出處理程序214和輸入處理程序216通常連續(xù)執(zhí)行(作為一體),因此,也有時(shí)將這些程序總稱為1處理程序218。
[0051]用戶程序236是根據(jù)用戶的控制目的而制作的。即,采用控制系統(tǒng)I并根據(jù)控制對(duì)象的線程(進(jìn)程)等任意設(shè)計(jì)的程序。
[0052]如后文所述,用戶程序236與序列指令運(yùn)算程序232、運(yùn)動(dòng)運(yùn)算程序234協(xié)同實(shí)現(xiàn)用戶的控制目的。即,用戶程序236通過(guò)利用序列指令運(yùn)算程序232和運(yùn)動(dòng)運(yùn)算程序234提供的指令、函數(shù)、功能模塊等實(shí)現(xiàn)程序化操作。因此,有時(shí)也將用戶程序236、序列指令運(yùn)算程序232和運(yùn)動(dòng)運(yùn)算程序234總稱為控制程序230。
[0053]如此地,CPU單元104的處理器120執(zhí)行存儲(chǔ)在存儲(chǔ)單元的系統(tǒng)程序210和用戶程序236。
[0054]下面,對(duì)各程序進(jìn)行詳細(xì)說(shuō)明。
[0055]如上所述,用戶程序236是根據(jù)用戶的控制目的(例如,對(duì)象的線程、進(jìn)程等)而制作的。通常,用戶程序236形成為CPU單元104的處理器120可執(zhí)行的目標(biāo)程序形式。該用戶程序236,通過(guò)在輔助裝置300等編譯由梯形圖語(yǔ)言等描述的源程序而生成的。另外,通過(guò)連接電纜10將所生成的目標(biāo)程序形式的用戶程序236由輔助裝置300傳輸給CPU單元104,并在非易失性存儲(chǔ)器128等中存儲(chǔ)。
[0056]調(diào)度程序212針對(duì)輸出處理程序214、輸入處理程序216和控制程序230,控制各執(zhí)行周期中的處理開始和處理中斷后的處理恢復(fù)。更具體地講,調(diào)度程序212控制任務(wù)的執(zhí)行。任務(wù)依次執(zhí)行被分配的程序(10處理程序218、控制程序230等)。
[0057]調(diào)度程序212按照任務(wù)優(yōu)先級(jí)的設(shè)定、任務(wù)周期的設(shè)定等的任務(wù)執(zhí)行條件的設(shè)定,對(duì)這些程序處理的執(zhí)行順序等進(jìn)行管理。根據(jù)后述的任務(wù)執(zhí)行條件管理表242,管理各任務(wù)執(zhí)行條件的設(shè)定。在本實(shí)施方式的控制系統(tǒng)I中,可針對(duì)各任務(wù),提供用于改變?nèi)蝿?wù)執(zhí)行優(yōu)先級(jí)、任務(wù)執(zhí)行周期等執(zhí)行條件的指令(設(shè)定用指令),并可將該指令加入到用戶程序236中。CPU單元104通過(guò)執(zhí)行用戶程序236所含的用于改變各任務(wù)執(zhí)行條件的指令,來(lái)改變各任務(wù)的優(yōu)先級(jí)、各任務(wù)的周期等。如此地,控制系統(tǒng)I可以從用戶程序改變?nèi)蝿?wù)的優(yōu)先級(jí)。
[0058]輸出處理程序214將通過(guò)執(zhí)行用戶程序236(控制程序230)而生成的輸出數(shù)據(jù),再配置為適合向PLC系統(tǒng)總線控制器140和/或現(xiàn)場(chǎng)總線控制器150傳輸?shù)男问?。?dāng)PLC系統(tǒng)總線控制器140或現(xiàn)場(chǎng)總線控制器150需要來(lái)自處理器120的用于執(zhí)行發(fā)送的指令時(shí),則輸出處理程序214發(fā)出這樣的指令。
[0059]輸入處理程序216將由PLC系統(tǒng)總線控制器140和/或現(xiàn)場(chǎng)總線控制器150接收的輸入數(shù)據(jù),再配置為適合控制程序230使用的形式。
[0060]序列指令運(yùn)算程序232是,當(dāng)用戶程序236中使用的某種序列指令被執(zhí)行時(shí)而被調(diào)用,并為了實(shí)現(xiàn)該指令內(nèi)容而被執(zhí)行的程序。
[0061]運(yùn)動(dòng)運(yùn)算程序234是,按照用戶程序236的指示被執(zhí)行,并計(jì)算針對(duì)伺服電機(jī)驅(qū)動(dòng)器30、脈沖電機(jī)驅(qū)動(dòng)器等電機(jī)驅(qū)動(dòng)器輸出的指令值的程序。
[0062]除圖3中個(gè)別表示的程序以外的、用于實(shí)現(xiàn)PLC100各種功能的程序組統(tǒng)一表示為其他系統(tǒng)程序220。該其他系統(tǒng)程序220包括數(shù)據(jù)塊(DB)訪問(wèn)處理程序192。數(shù)據(jù)塊訪問(wèn)處理程序192包括:隨著用戶程序236的執(zhí)行,用于實(shí)現(xiàn)必要的處理以訪問(wèn)數(shù)據(jù)庫(kù)裝置400的指令代碼組。數(shù)據(jù)塊訪問(wèn)處理程序192包括與用戶程序236中的可指定指令相對(duì)應(yīng)的執(zhí)行代碼。
[0063]作為指定運(yùn)動(dòng)控制循環(huán)周期的信息形式,可采用:表示運(yùn)動(dòng)控制循環(huán)周期的時(shí)間的值、運(yùn)動(dòng)控制循環(huán)周期相關(guān)的事先準(zhǔn)備的多個(gè)選項(xiàng)中特別指定的一個(gè)信息(號(hào)碼或字符)等。
[0064]實(shí)時(shí)操作系統(tǒng)200提供用于按照時(shí)間經(jīng)過(guò)而切換執(zhí)行多個(gè)程序的環(huán)境。在本實(shí)施方式的PLC100中,作為將由CPU單元104的程序執(zhí)行而生成的輸出數(shù)據(jù)向其他單元或其他裝置輸出(發(fā)送)的事件(中斷),初始設(shè)定輸出準(zhǔn)備中斷(P)和現(xiàn)場(chǎng)網(wǎng)絡(luò)發(fā)送中斷(X)。當(dāng)發(fā)生輸出準(zhǔn)備中斷(P)或現(xiàn)場(chǎng)網(wǎng)絡(luò)發(fā)送中斷(X)時(shí),實(shí)時(shí)操作系統(tǒng)200將處理器120的執(zhí)行對(duì)象由中斷發(fā)生時(shí)執(zhí)行的程序切換為調(diào)度程序212。
[0065]另外,當(dāng)調(diào)度程序212和由調(diào)度程序212控制執(zhí)行的程序沒有被執(zhí)行時(shí),實(shí)時(shí)操作系統(tǒng)200執(zhí)行其他系統(tǒng)程序210中含有的程序。作為這種程序,例如包括:通過(guò)CPU單元104和輔助裝置300間的連接電纜1(USB)等的通信處理相關(guān)的程序、CPU單元104和上位裝置(數(shù)據(jù)庫(kù)裝置400等)間的通信處理相關(guān)的程序等。
[0066]<D ?數(shù)據(jù)結(jié)構(gòu)>
[0067]參照?qǐng)D4,對(duì)CPU單元104所使用的數(shù)據(jù)進(jìn)行說(shuō)明。
[0068]圖4是示出了任務(wù)執(zhí)行條件管理表242的圖。如圖4所示,任務(wù)執(zhí)行條件管理表242示出了 CPU單元104用于執(zhí)行各任務(wù)的條件,例如,示出了執(zhí)行各任務(wù)的優(yōu)先級(jí)、各任務(wù)的周期。任務(wù)執(zhí)行條件管理表242的各記錄包括任務(wù)名244、執(zhí)行優(yōu)先級(jí)246和任務(wù)周期248。
[0069]任務(wù)名244表示各任務(wù)的名稱。
[0070]執(zhí)行優(yōu)先級(jí)246表示各任務(wù)優(yōu)先級(jí)的設(shè)定值。優(yōu)先級(jí)的設(shè)定值例如有:最高優(yōu)先級(jí)的優(yōu)先級(jí)“高”、優(yōu)先級(jí)次高的優(yōu)先級(jí)“中”、優(yōu)先級(jí)最低的優(yōu)先級(jí)“低”。另外,優(yōu)先級(jí)的設(shè)定值并不限于三個(gè)等級(jí),還可以有更多的等級(jí)。
[0071 ]任務(wù)周期248表示執(zhí)行各任務(wù)的周期。例如,以優(yōu)先級(jí)最高的優(yōu)先級(jí)“高”的任務(wù)的周期為基準(zhǔn),其他優(yōu)先級(jí)的任務(wù)可以為優(yōu)先級(jí)“高”的任務(wù)的周期的整數(shù)倍。
[0072]圖5是示出了各任務(wù)執(zhí)行順序的一個(gè)例子的圖。參照?qǐng)D5,CPU單元104按照任務(wù)執(zhí)行條件,執(zhí)行優(yōu)先級(jí)設(shè)定為優(yōu)先級(jí)“高”、周期“Tl”的固定周期任務(wù)和優(yōu)先級(jí)設(shè)定為優(yōu)先級(jí)“中”、周期“T2”的固定周期任務(wù)。在CPU單元104中,優(yōu)先級(jí)“高”的固定周期任務(wù)是最高優(yōu)先級(jí)的任務(wù)。
[0073]當(dāng)在優(yōu)先級(jí)“中”的固定周期任務(wù)執(zhí)行過(guò)程中可以執(zhí)行高優(yōu)先級(jí)的固定周期任務(wù)時(shí),由于優(yōu)先級(jí)“中”的固定周期任務(wù)的優(yōu)先級(jí)比優(yōu)先級(jí)“高”的任務(wù)的優(yōu)先級(jí)低,因此暫時(shí)中斷優(yōu)先級(jí)“中”的固定周期任務(wù),執(zhí)行優(yōu)先級(jí)“高”的固定周期任務(wù)。當(dāng)優(yōu)先級(jí)“高”的固定周期任務(wù)結(jié)束后,恢復(fù)執(zhí)行優(yōu)先級(jí)“中”的固定周期任務(wù)。需要說(shuō)明的是,優(yōu)先級(jí)“中”的固定周期任務(wù)的周期T2是優(yōu)先級(jí)“高”的固定周期任務(wù)的周期Tl的整數(shù)倍。圖5示出了 T2 = 2T1(周期Τ2是周期Tl的2倍周期)的情況。
[0074]在圖5中,將調(diào)度程序標(biāo)記為“SC”,將輸出輸入處理程序標(biāo)記為“01”,將用戶程序236標(biāo)記為“UPRG”,將運(yùn)動(dòng)運(yùn)算程序234標(biāo)記為“MC”。另外,圖5中,在便于說(shuō)明的方面,為了識(shí)別各O1、各MC,分別附上不同的參考符號(hào)701-707。
[0075]在PLC100的執(zhí)行過(guò)程中,處理器120至少使輸出輸入處理程序(輸出處理程序214和輸入處理程序216)、用戶程序236、以及運(yùn)動(dòng)運(yùn)算程序234處于可執(zhí)行狀態(tài)。嚴(yán)格地說(shuō),實(shí)時(shí)操作系統(tǒng)200將各程序相關(guān)的進(jìn)程(或線程)保持在可執(zhí)行狀態(tài),調(diào)度程序212通過(guò)利用實(shí)時(shí)操作系統(tǒng)200和硬件資源(系統(tǒng)時(shí)鐘124等),使各程序以適當(dāng)?shù)臅r(shí)間和適當(dāng)?shù)捻樞驁?zhí)行。這樣,通過(guò)調(diào)度程序212控制各程序相關(guān)執(zhí)行的開始、中斷、結(jié)束等。
[0076]<Ε.改變?nèi)蝿?wù)執(zhí)行條件的指令>
[0077]參照?qǐng)D6,對(duì)可加入到用戶程序236中的用于改變?nèi)蝿?wù)執(zhí)行條件的指令進(jìn)行說(shuō)明。在實(shí)施方式I的PLC100中,可以將改變?nèi)蝿?wù)執(zhí)行條件(任務(wù)優(yōu)先級(jí)的設(shè)定、執(zhí)行任務(wù)的周期的設(shè)定)的指令加入到用戶程序236中。PLC100的CPU單元104通過(guò)執(zhí)行用戶程序236中含有的用于改變?nèi)蝿?wù)執(zhí)行條件的指令,可以改變?nèi)蝿?wù)執(zhí)行條件管理表242所示的各任務(wù)優(yōu)先級(jí)的設(shè)定和執(zhí)行任務(wù)的周期的設(shè)定中的任一者或兩者。
[0078]調(diào)度程序212按照任務(wù)執(zhí)行條件管理表242所示的各任務(wù)優(yōu)先級(jí)和各任務(wù)周期,針對(duì)各循環(huán)來(lái)控制程序的執(zhí)行順序。例如,基于某個(gè)處理完成等某些條件成立,調(diào)度程序212參照任務(wù)執(zhí)行條件管理表242,獲取各任務(wù)優(yōu)先級(jí)和各任務(wù)周期的設(shè)定,并按照獲取的任務(wù)優(yōu)先級(jí)和任務(wù)周期的設(shè)定,管理各程序的執(zhí)行順序。
[0079]圖6是示出了用于改變?nèi)蝿?wù)的執(zhí)行條件的指令的例子的圖。圖6示出的是用戶在輔助裝置300的顯示器310中編輯任務(wù)執(zhí)行條件變更指令320的界面的例子。如圖6所示,用戶可以根據(jù)用于改變?nèi)蝿?wù)的執(zhí)行條件的指令“ChangeTaskProperties”,設(shè)定任務(wù)名稱“TaskName”、任務(wù)周期“Tasklnterval”和任務(wù)的執(zhí)行優(yōu)先級(jí)“TaskPr1rity”。任務(wù)執(zhí)行條件變更指令320,例如能夠以功能塊的形式描述。通過(guò)由PLC100的CPU單元104執(zhí)行任務(wù)執(zhí)行條件變更指令320,改變指定任務(wù)的優(yōu)先級(jí)或任務(wù)的執(zhí)行周期中的任一者或兩者,從而更新任務(wù)執(zhí)行條件管理表242。
[0080]<F ?操作 >
[0081]下面,舉例說(shuō)明CPU單元104通過(guò)執(zhí)行用戶程序236中含有的指令而改變各任務(wù)優(yōu)先級(jí)的操作例。
[0082]<F1.從用戶程序改變各任務(wù)優(yōu)先級(jí)>
[0083]圖7是示出CPU單元104執(zhí)行用戶程序中含有的指令而改變?nèi)蝿?wù)優(yōu)先級(jí)時(shí)各任務(wù)的執(zhí)行順序的圖。圖7(A)表示了任務(wù)“B”的優(yōu)先級(jí)為優(yōu)先級(jí)“中”時(shí)各任務(wù)的執(zhí)行順序。圖7(B)表示了任務(wù)“B”的優(yōu)先級(jí)為優(yōu)先級(jí)“低”時(shí)各任務(wù)的執(zhí)行順序。需要說(shuō)明的是,在圖7(A)和圖7(B)中,用戶程序含有的指令(功能塊)設(shè)定為“FB”。指令801和指令803是改變?nèi)蝿?wù)執(zhí)行條件的指令。
[0084]如圖7(A)所示,當(dāng)CPU單元104執(zhí)行用戶程序800,并執(zhí)行該用戶程序800中含有的指令801時(shí),任務(wù)“B”的優(yōu)先級(jí)由優(yōu)先級(jí)“中”改變?yōu)閮?yōu)先級(jí)“低”。之后,如圖7(B)所示,執(zhí)行各任務(wù)。在圖7(B)中,當(dāng)CPU單元104執(zhí)行用戶程序802,并執(zhí)行該用戶程序802中含有的指令803時(shí),任務(wù)“B”的優(yōu)先級(jí)由優(yōu)先級(jí)“低”改變?yōu)閮?yōu)先級(jí)“中”。
[0085]例如,在控制系統(tǒng)I中,各裝置生產(chǎn)產(chǎn)品時(shí),當(dāng)PLC100從服務(wù)器接收到作為生產(chǎn)用參數(shù)的配方的情況下,通過(guò)改變?nèi)蝿?wù)的優(yōu)先級(jí),可有效地操作PLC100的各處理。具體地說(shuō),例如,將控制系統(tǒng)I的處理由生產(chǎn)產(chǎn)品的處理切換為接收配方的處理。這時(shí),通過(guò)使任務(wù)“B”的優(yōu)先級(jí)低于任務(wù)“通信處理任務(wù)”,可使PLC100有效地進(jìn)行通信處理,能夠加速配方數(shù)據(jù)的接收處理。另外,將控制系統(tǒng)I的處理由接收配方處理切換為生產(chǎn)產(chǎn)品處理。這時(shí),通過(guò)改變?nèi)蝿?wù)“B”的優(yōu)先級(jí)而使其與任務(wù)“通信處理任務(wù)”的優(yōu)先級(jí)同等,或比任務(wù)“通信處理任務(wù)”的優(yōu)先級(jí)更高,可以有效地進(jìn)行產(chǎn)品的生產(chǎn)。
[0086]<F2.從用戶程序改變?nèi)蝿?wù)周期>
[0087]圖8是示出CPU單元104執(zhí)行用戶程序中含有的指令而改變?nèi)蝿?wù)周期時(shí)各任務(wù)的執(zhí)行順序的圖。圖8(A)表示的是任務(wù)“A”的周期和任務(wù)“通信處理任務(wù)”的周期均為周期“Tl”時(shí)各任務(wù)的執(zhí)行順序。圖8(B)表示的是任務(wù)“A”的周期和任務(wù)“通信處理任務(wù)”的周期均為周期“T2”時(shí)各任務(wù)的執(zhí)行順序。需要說(shuō)明的是,在圖8中,任務(wù)“A”的優(yōu)先級(jí)比任務(wù)“通信處理任務(wù)”的優(yōu)先級(jí)更高。指令805和指令807是改變?nèi)蝿?wù)執(zhí)行條件的指令。
[0088]如圖8(A)所示,CPU單元104按照各任務(wù)周期執(zhí)行程序。CPU單元104在周期“Tl”的時(shí)間段內(nèi),首先執(zhí)行任務(wù)“A”的處理,在任務(wù)“A”的處理結(jié)束后的剩余的時(shí)間內(nèi),執(zhí)行任務(wù)“通信處理任務(wù)”。若CHJ單元104執(zhí)行用戶程序804,并執(zhí)行該用戶程序804中含有的指令805,則任務(wù)“A”的周期和任務(wù)“通信處理任務(wù)”的周期由周期“Tl”改變?yōu)橹芷凇癟2”。之后,如圖8(B)所示地執(zhí)行各任務(wù)。
[0089]比較圖8(A)和圖8(B)可知,圖8(B)中各任務(wù)的周期變長(zhǎng)。因此,在圖8(B)的情況下,任務(wù)“通信處理任務(wù)”與圖8(A)的情況相比,執(zhí)行更長(zhǎng)的時(shí)間。因此,在圖8(B)的情況下,CPU單元104與外部設(shè)備(例如數(shù)據(jù)庫(kù)裝置400等)的通信時(shí)間也比圖8(A)的情況更長(zhǎng)。
[0090]在圖8(B)中,若CPU單元104執(zhí)行用戶程序806,并執(zhí)行該用戶程序806中含有的指令807,則任務(wù)“A”的周期和任務(wù)“通信處理任務(wù)”的周期由周期“T2”改變?yōu)橹芷凇癟l”。
[0091]例如,在控制系統(tǒng)I中,會(huì)出現(xiàn)啟動(dòng)裝置、調(diào)整裝置等情況,這時(shí)需要根據(jù)情況調(diào)整各裝置的控制處理和通信處理的平衡。其中,通過(guò)調(diào)整用于控制各裝置的任務(wù)(以圖8為例,任務(wù)“A”等)周期,可以調(diào)整任務(wù)“通信處理任務(wù)”的處理時(shí)間。
[0092]例如,在設(shè)計(jì)控制系統(tǒng)I時(shí),可以優(yōu)先進(jìn)行裝置的控制處理,將任務(wù)周期設(shè)定的更短。另一方面,當(dāng)通信處理需要有一定程度的余量時(shí)間時(shí),可以將任務(wù)周期設(shè)定的更長(zhǎng)。如圖8所示的例子,可以從用戶程序改變?nèi)蝿?wù)周期,由此在裝置的啟動(dòng)、調(diào)整等情況下,可以微調(diào)任務(wù)周期,能夠有效地促進(jìn)該啟動(dòng)、調(diào)整等操作。
[0093 ] <F3.從用戶程序改變?nèi)蝿?wù)優(yōu)先級(jí)和任務(wù)周期>
[0094]圖9是示出CPU單元104執(zhí)行用戶程序中含有的指令而改變?nèi)蝿?wù)優(yōu)先級(jí)和任務(wù)周期時(shí)各任務(wù)的執(zhí)行順序的圖。圖9(A)示出了任務(wù)“A”為優(yōu)先級(jí)“高”、周期“Tl”,任務(wù)“B”為優(yōu)先級(jí)“中”、周期“T2”,任務(wù)“通信處理任務(wù)”為優(yōu)先級(jí)“低”、周期“T2”時(shí)各任務(wù)的執(zhí)行順序。圖9(B)中表示了任務(wù)“A”為優(yōu)先級(jí)“高”、周期“Tl”,任務(wù)“B”為優(yōu)先級(jí)“低”、周期“T3”,任務(wù)“通信處理任務(wù)”為優(yōu)先級(jí)“低”、周期“T3”時(shí)各任務(wù)的執(zhí)行順序。指令809和指令811是改變?nèi)蝿?wù)執(zhí)行條件的指令。
[0095]如圖9(A)所示,若CPU單元104執(zhí)行用戶程序808,并執(zhí)行該用戶程序中含有的指令809,則任務(wù)“B”的優(yōu)先級(jí)由優(yōu)先級(jí)“中”改變?yōu)閮?yōu)先級(jí)“低”,任務(wù)“B”的周期由周期“T2”改變?yōu)橹芷凇癟3”。另外,通過(guò)執(zhí)行用戶程序中含有的指令809,任務(wù)“通信處理任務(wù)”的優(yōu)先級(jí)由優(yōu)先級(jí)“低”改變?yōu)閮?yōu)先級(jí)“中”,任務(wù)“通信處理任務(wù)”的周期由周期“T2”改變?yōu)橹芷凇癟3”。之后,如圖9(B)所示,執(zhí)行各任務(wù)。
[0096]當(dāng)比較圖9(A)和圖9(B)時(shí),圖9(B)的任務(wù)“B”和任務(wù)“通信處理任務(wù)”的周期變長(zhǎng),任務(wù)“通信處理任務(wù)”的優(yōu)先級(jí)變得比任務(wù)“B”高。
[0097]在圖9(B)中,若CPU單元104執(zhí)行用戶程序810,并執(zhí)行該用戶程序810中含有的指令811,則任務(wù)“B”的優(yōu)先級(jí)由優(yōu)先級(jí)“低”改變?yōu)閮?yōu)先級(jí)“中”,周期由周期“T3”改變?yōu)橹芷凇癟2”。另外,任務(wù)“通信處理任務(wù)”的優(yōu)先級(jí)由優(yōu)先級(jí)“中”改變?yōu)閮?yōu)先級(jí)“低”,周期由周期“T3”改變?yōu)橹芷凇癟2”。
[0098]與圖7相比,當(dāng)周期性操作降低優(yōu)先級(jí)的任務(wù)時(shí),在降低其任務(wù)優(yōu)先級(jí)的同時(shí),延長(zhǎng)任務(wù)周期。由此,可使優(yōu)先級(jí)降低的任務(wù)進(jìn)行操作而不會(huì)超出任務(wù)周期。
[0099]<G ?效果 >
[0100]通常,控制系統(tǒng)預(yù)先設(shè)定程序的優(yōu)先級(jí)、周期等,并按照設(shè)定執(zhí)行各程序。在這些系統(tǒng)中,根據(jù)情況會(huì)出現(xiàn)想使其優(yōu)先的程序與程序的周期不同的情況。例如,在控制裝置對(duì)通過(guò)網(wǎng)絡(luò)連接的上位裝置(數(shù)據(jù)庫(kù)裝置、服務(wù)器等)發(fā)送、接收數(shù)據(jù)的情況下,或者,在啟動(dòng)各裝置等的情況下,以及在生產(chǎn)產(chǎn)品時(shí)等要求高速操作的情況下,存在想使其優(yōu)先的程序與程序的周期時(shí)間不同的情況。根據(jù)本實(shí)施方式中說(shuō)明的控制系統(tǒng)I,即使控制系統(tǒng)230處于運(yùn)行狀態(tài),也可以改變執(zhí)行程序的優(yōu)先級(jí)、操作控制裝置的循環(huán)周期,能夠有效地進(jìn)行控制系統(tǒng)I的操作。
[0101]應(yīng)當(dāng)理解的是,本發(fā)明公開的實(shí)施方式的所有方面都是示例性的,而不是限制性的。本發(fā)明的范圍并不僅限于上述說(shuō)明,應(yīng)當(dāng)理解為由權(quán)利要求的范圍所示的內(nèi)容、與權(quán)利要求的范圍等同的內(nèi)容、以及在權(quán)利要求的范圍內(nèi)所作的所有變更均包括在本發(fā)明的范圍內(nèi)。
[0102]附圖標(biāo)記說(shuō)明如下:
[0103]I控制系統(tǒng)、?ο檢測(cè)開關(guān)、20繼電器、30伺服電機(jī)驅(qū)動(dòng)器、32電機(jī)、100 PLC、102電源單元、104 CPU單元、106 1單元、108 PLC系統(tǒng)總線、110現(xiàn)場(chǎng)總線、112網(wǎng)絡(luò)、114連接電纜、120處理器、122芯片組、124系統(tǒng)時(shí)鐘、126主存儲(chǔ)器、128非易失性存儲(chǔ)器、130USB連接器、140 PLC系統(tǒng)總線控制器、142,152,162緩沖存儲(chǔ)器、144 PLC系統(tǒng)總線控制電路、146,156,166 DMA控制電路、148 PLC系統(tǒng)總線連接器、150現(xiàn)場(chǎng)總線控制器、154現(xiàn)場(chǎng)總線控制電路、158現(xiàn)場(chǎng)總線連接器、160上位通信控制器、164上位通信控制電路、168上位通信連接器、170存儲(chǔ)卡接口、172存儲(chǔ)卡、192數(shù)據(jù)塊訪問(wèn)處理程序、194輸入輸出處理程序、196接口處理程序、200實(shí)時(shí)操作系統(tǒng)、212調(diào)度程序、214輸出處理程序、216輸入處理程序、218 1處理程序、220其他系統(tǒng)程序、230控制程序、232序列指令運(yùn)算程序、234運(yùn)動(dòng)運(yùn)算程序、236用戶程序、242任務(wù)執(zhí)行條件管理表、300輔助裝置、310顯示器、400數(shù)據(jù)庫(kù)裝置。
【主權(quán)項(xiàng)】
1.一種用于控制對(duì)象設(shè)備的控制器,具有: 存儲(chǔ)部,用于存儲(chǔ)包含用戶程序的多個(gè)程序和表示任務(wù)執(zhí)行條件的任務(wù)信息,以及 控制部,按照所述任務(wù)信息中表示的執(zhí)行條件周期性地執(zhí)行所述程序; 所述控制器通過(guò)所述控制部周期性地執(zhí)行所述用戶程序來(lái)控制所述對(duì)象設(shè)備, 所述用戶程序能夠含有用于改變所述任務(wù)執(zhí)行條件的設(shè)定用指令, 所述控制部通過(guò)執(zhí)行所述用戶程序中含有的所述設(shè)定用指令,來(lái)更新所述存儲(chǔ)部的所述任務(wù)信息,并按照更新后的所述任務(wù)執(zhí)行條件執(zhí)行所述程序。2.如權(quán)利要求1所述的控制器,其中, 所述任務(wù)信息中表示的所述執(zhí)行條件中含有執(zhí)行所述任務(wù)的優(yōu)先級(jí), 所述控制部按照任務(wù)的優(yōu)先級(jí)周期性地執(zhí)行所述程序, 所述設(shè)定用指令中含有改變所述任務(wù)的優(yōu)先級(jí)的指令, 所述控制部通過(guò)執(zhí)行所述用戶程序中含有的改變所述任務(wù)的優(yōu)先級(jí)的指令,來(lái)改變所述指令所涉及的任務(wù)的優(yōu)先級(jí),從而更新所述任務(wù)信息。3.如權(quán)利要求1所述的控制器,其中, 所述任務(wù)信息中表示的所述執(zhí)行條件中含有執(zhí)行所述任務(wù)的周期, 所述設(shè)定用指令中含有改變執(zhí)行所述任務(wù)的周期的指令, 所述控制部通過(guò)執(zhí)行所述用戶程序中含有的改變所述任務(wù)的周期的指令,來(lái)改變所述指令所涉及的任務(wù)的周期,從而更新所述任務(wù)信息。4.如權(quán)利要求1所述的控制器,其中, 所述任務(wù)信息中表示的所述執(zhí)行條件中含有執(zhí)行所述任務(wù)的優(yōu)先級(jí)和執(zhí)行所述任務(wù)的周期, 所述控制部按照任務(wù)的優(yōu)先級(jí)和周期周期性地執(zhí)行所述程序, 所述設(shè)定用指令中含有改變所述任務(wù)的優(yōu)先級(jí)的指令和改變所述任務(wù)的周期的指令中的至少任意一個(gè), 所述控制部通過(guò)執(zhí)行所述用戶程序中含有的改變所述任務(wù)的優(yōu)先級(jí)的指令和改變所述任務(wù)的周期的指令,改變所述指令所涉及的任務(wù)的優(yōu)先級(jí)和周期中的至少任意一個(gè),從而更新所述任務(wù)信息。
【文檔編號(hào)】G06F9/48GK106062648SQ201580011829
【公開日】2016年10月26日
【申請(qǐng)日】2015年1月14日 公開號(hào)201580011829.4, CN 106062648 A, CN 106062648A, CN 201580011829, CN-A-106062648, CN106062648 A, CN106062648A, CN201580011829, CN201580011829.4, PCT/2015/50798, PCT/JP/15/050798, PCT/JP/15/50798, PCT/JP/2015/050798, PCT/JP/2015/50798, PCT/JP15/050798, PCT/JP15/50798, PCT/JP15050798, PCT/JP1550798, PCT/JP2015/050798, PCT/JP2015/50798, PCT/JP2015050798, PCT/JP201550798
【發(fā)明人】矢尾板宏心, 小島達(dá)矢
【申請(qǐng)人】歐姆龍株式會(huì)社