Posts Issued in June, 2019

8.3.1 マイコンの取り扱い他

posted by sakurai on June 28, 2019

8.3.1 マイコンの取り扱い

1st EditionではPart 10が主にISO 26262を半導体に適用する場合のガイドラインであったため、マイコンの取り扱いはPart 10に存在しましたが、2nd Editionになって、Part 10は全般的なガイドラインとなり、Part 11としてISO 26262を半導体に適用する場合のガイドラインが新設されたため、ISO 26262をマイコンに適用する場合の話題がPart 11に移動しました。

8.3.2 PMHF式

PMHF式については説明が追加されました。しかしながら、導出過程や導出前提を明らかにしたものではありません。また、式自体にも疑義があります。弊社ではPMHFを1st Edition発効から8年間に渡って研究しており、その結果としてIEEE最優秀論文賞を得ることができました。この論文は1st Editionの式を対象としていますが、新たに2nd Editonで式が変更されたため、それに基づく論文をIEEEに投稿中です。従って、式の導出を含めた詳細は $\img[-1.35em]{/images/withinseminar.png}$

12 システム開発のガイダンス

1st Editionの思想から拡張されているフォールトトレランス(耐故障性)についてまとめられた節が新設されました。1st Editionの思想は、とにかくフォールトが発生した場合にはFTTI中にシステムを安全状態に持っていけば、それでハザードが回避できるため、OKでした。

ところが、例えば高速道路の追い越し車線を120KM/hで走行中にフォールトを検出し、いくら安全状態だからといって、その場で車両を停止させてしまうと、これはかなり危険な状態であることが容易に想像できます。このような場合は可能な限り左端の路側帯に寄せて停車するか、もしくは次の出口や安全な場所まで走行したいはずです。

本節ではこのような要求に対して解答を与えるものとなっており、基本的なアーキテクチャはIFに対するSM1としてバックアップ系を想定しています。例えば、IFについてASIL-Dを割り当てている時に、当然その平均PUDは10[FIT]未満となりますが、故障したときには安全状態で停止するのではなく、動作し続けることがフォールトトレラントのために必要です。しかしながら、その場合にもASIL-Dを要求するものではありません。例えば、バックアップ系の時速がある速度より遅ければASIL-Bとすることができます。すると、速度は遅くても修理工場まで走行することが可能です。

本節には2とおり例示されており、緊急動作時間(EOTTI)以内に修理するか、上記のようにバックアップ系に切り替われば良いことになります。問題はEOTTIがあまりにも短い場合(例えば1sec未満)は修理工場に行くことができないので、その計算が必要となります。それが12.3.1.1に示されています。

次の図120.1の(2)は前記事にも掲載されている、2nd EditionのPMHF式(図109.3)の$T_\mathrm{service}$を$T_\mathrm{eotti}$と置き、$T_\mathrm{eotti}$について解いた式となっています。

図%%.1
図120.1 PMHF式に基づくEOTTIの導出

一方、次の図120.2の(3)は、ワースト時を想定しているようです。バックアップ系がEOTTI時間走行する状態での故障確率式です。

図%%.2
図120.2 車両寿命間の故障に基づくEOTTIの導出

いずれの式にも問題がありそうなので、次項で説明します。


左矢前のブログ 次のブログ右矢

posted by sakurai on June 27, 2019

Part 10

ここまで2nd EditionのPart 5について変更点をご紹介してきました。Part 10は以下の相違があります。

  1. 4.4 FTTIの追加
  2. 8.3.1 マイコンの取り扱い⇒Part 11へ
  3. 8.3.2 PMHF式の導出及び変更 1st Editionの式導出も含めて詳細にご説明します。
  4. 12 システム開発のガイダンス
  5. 13 ソフトウエアツールの使用への信頼(対象外)
  6. 14 安全関連特別特性(対象外)
  7. Annex A マイクロコントローラの安全分析詳細⇒Part 11へ移動

4.4 FTTI

用語を列挙します。

  • FTTI(Fault Tolerant Time Interval): フォールトトレラント時間間隔
  • FDTI(Fault Detection Time Interval): フォールト検出時間間隔
  • FRTI(Fault Reaction Time Interval): フォールト反応時間間隔
  • EOTI(Emergency Operation Time Interval): 緊急動作時間間隔
  • EOTTI(Emergency Operation Tolerant Time Interval): 緊急動作トレラント時間間隔
  • DTTI(Diag Test Time Interval): ダイアグテスト時間間隔

基本的には、フォールトが発生してからフォールトに対処するまでの最大時間がFTTIであり、これを超えると危険状態になるため、フォールトが発生してからそれを検出し、検出したフォールトに対して反応して安全状態に持っていく時間がそれを超えないようにします。つまり、 $$ T_{\mathrm{DTTI}}+T_{\mathrm{FDTI}}+T_{\mathrm{FRTI}}\lt\img[-1.35em]{/images/withinseminar.png} $$ となることが要求されます。もしくは、$T_{\mathrm{DTTI}}$が$T_{\mathrm{FDTI}}$に比べて小さいか、または$T_{\mathrm{FDTI}}$の中に$T_{\mathrm{DTTI}}$を含めるものと定義すれば、 $$ T_{\mathrm{FDTI}}+T_{\mathrm{FRTI}}\lt T_{\mathrm{FTTI}} $$ でもOKです。

問題は安全状態に持っていくのがFTTIに間に合わなかった場合です。その場合は緊急動作状態に持っていくことが求められており、今度はFTTIではなく、EOTTIで制約を受けます。本来なら安全状態になるはずの時刻からさらにEOTTIまでに緊急動作が終了すればOKです。従って、 $$ T_{\mathrm{EOTI}}\lt\img[-1.35em]{/images/withinseminar.png} $$ 少々おかしいのは、FTTIは主機能側の状態に関して、フォールトが起きてから危険事象が発生するまでの時間とSM側の動作時間の総和を比較しているのに比べて、緊急動作時間の不等式は、SM側の動作時間どうしの関係であることです。本来はFTTIと同様、主機能側とSM側の時間制約を比較すべきではないでしょうか。


左矢前のブログ 次のブログ右矢

posted by sakurai on June 26, 2019

SPFMの分割

Part5 8.4.7にSPFMの分割例が新設されました。例えばアイテムがレメントA, B, Cから構成され、 $$ \lambda_{\mathrm{total}}=\lambda_{\mathrm{A}}+\lambda_{\mathrm{B}}+\lambda_{\mathrm{C}} $$ であり、それぞれのエレメントA, B, Cに対するSPFMの目標値を、$M_{\mathrm{SPFM,A}}$, $M_{\mathrm{SPFM,B}}$, $M_{\mathrm{SPFM,C}}$とするとき、 $$ \left[\frac{\lambda_{\mathrm{A}}}{\lambda_{\mathrm{total}}}M_{\mathrm{SPFM,A}}+ \frac{\lambda_{\mathrm{B}}}{\lambda_{\mathrm{total}}}M_{\mathrm{SPFM,B}}+ \frac{\lambda_{\mathrm{C}}}{\lambda_{\mathrm{total}}}M_{\mathrm{SPFM,C}}\right]\ge M_{\mathrm{SPFM,Itemtarget}}\tag{118.1} $$ となるような任意の$M_{\mathrm{SPFM,A}}$, $M_{\mathrm{SPFM,B}}$, $M_{\mathrm{SPFM,C}}$の目標値を許容する、とあります。これは、例えばASIL-Dであれば、$M_{\mathrm{SPFM,Itemtarget}}\ge99\%$であるとき、A, B, Cそれぞれのエレメントが99%以上無い場合でも、故障率の比(故障率密度が一定であれば面積比)により重みづけされたSPFMを計算し、結果が目標を満足していれば良いという意味です。

具体例で見てみます。故障率比率がそれぞれ $$ \frac{\lambda_{\mathrm{A}}}{\lambda_{\mathrm{total}}}=98\%, \frac{\lambda_{\mathrm{B}}}{\lambda_{\mathrm{total}}}=1\%, \frac{\lambda_{\mathrm{C}}}{\lambda_{\mathrm{total}}}=1\% $$ であるとき、(118.1)を満たす$M_{\mathrm{SPFM,A}}$, $M_{\mathrm{SPFM,B}}$, $M_{\mathrm{SPFM,C}}$の組み合わせはいろいろ考えられますが、例えば故障率比率の大きなエレメントAのSPFMが比較的大きい場合を考え、例えば以下のようであるとすれば、 $$ M_{\mathrm{SPFM,A}}=99.9\%, M_{\mathrm{SPFM,B}}=60.0\%, M_{\mathrm{SPFM,C}}=60.0\% $$ である場合、(118.1)左辺は、 $$ (118.1)=\img[-1.35em]{/images/withinseminar.png} $$ となり、アイテムターゲットのSPFMである99%以上を満足します。

別の値の例としては、 $$ M_{\mathrm{SPFM,A}}=99.99\%, M_{\mathrm{SPFM,B}}=51.0\%, M_{\mathrm{SPFM,C}}=51.0\% $$ である場合、(118.1)左辺は、 $$ (118.1)=\img[-1.35em]{/images/withinseminar.png} $$ となり、アイテムターゲットのSPFMである99%以上を満足します。

このような組み合わせは無数にありますが、上記のように$M_{\mathrm{SPFM,B}}=M_{\mathrm{SPFM,C}}$でありこれを横軸として、縦軸を$M_{\mathrm{SPFM,A}}$とすれば、解の領域は図118.1のグリーンの領域となります。

図%%.1
図118.1 分割された$M_{SPFM}$の解空間

同様にPart5 8.4.8に、LFMについても分割例が記述されました。それぞれのエレメントA, B, Cに対するLFMの目標値を、$M_{\mathrm{LFM,A}}$, $M_{\mathrm{LFM,B}}$, $M_{\mathrm{LFM,C}}$とするとき、 $$ \left[\frac{\lambda_{\mathrm{A}}}{\lambda_{\mathrm{total}}}M_{\mathrm{LFM,A}}+ \frac{\lambda_{\mathrm{B}}}{\lambda_{\mathrm{total}}}M_{\mathrm{LFM,B}}+ \frac{\lambda_{\mathrm{C}}}{\lambda_{\mathrm{total}}}M_{\mathrm{LFM,C}}\right]\ge M_{\mathrm{LFM,Itemtarget}}\tag{118.2} $$ となるような任意の$M_{\mathrm{LFM,A}}$, $M_{\mathrm{LFM,B}}$, $M_{\mathrm{LFM,C}}$の目標値を許容する、とあります。

$M_\mathrm{LFM}$の解空間は$M_\mathrm{SPFM}$と同様に導出することができます。


左矢前のブログ 次のブログ右矢

posted by sakurai on June 25, 2019

意図

Annex Hが新設された意図は、Part5 8.4.8でLFMの目標値の設定方法を3種あげていますが、その実例を示すものです。例えば8.4.8のa)は、「8.4.6に記述される"レイテントフォールトメトリック”の目標値を満足する」とありますが、Annex Hでは例を通じてその計算を行っています。

以下に1st SMの故障抑止能力(DC)が故障検出に基づくものと、故障抑止に基づくものの2パターンの例を挙げています。

第1例

故障検出に基づくフォールトは、検出されるからVSG抑止されるのであってその逆ではありません。ということは、抑止された分の検出割合は常に100%です。これは2nd SMとしての検出率が100%であることを意味し、図117.2でも示すように、グリーンで示した主機能のレイテントフォールトはゼロであることを意味します。 一方、SM(1st SM)のフォールトはSG侵害しないため、2nd SMの検出率により、検出から漏れた部分がレイテントフォールトとなります。

図%%.1
図117.1 フォールト検出に基づくSM

図%%.2
図117.2 フォールト検出に基づくSMを含むFMEDA

第2例

一方、SG侵害抑止に基づき、検出を行わない1st SMも存在し、その例を示しています。この場合、故障抑止はするものの、故障検出はゼロとなり、抑止されたものが全量レイテントフォールトとなります。 同じく、SM(1st SM)のフォールトはSG侵害しないため、2nd SMの検出率により、検出から漏れた部分がレイテントフォールトとなります。

図%%.3
図117.3 SG侵害抑止に基づくSM

図%%.4
図117.4 SG侵害抑止に基づくSMを含むFMEDA


左矢前のブログ 次のブログ右矢

PMHFのバジェッティング

posted by sakurai on June 22, 2019

Annex G

これも2nd Editionで新設されたAnnexですが、PMHFのバジェッティングについて記述されています。といっても従来からバジェッティングは現場では実施されていました。それと規格の意図するところは若干異なるようです。

従来のバジェッティング

まず1st Editionで実施されていたバジェッティングは、Part5 9.4.2.2 表6で規定される、PMHF目標値を分割するものでした。例えば、あるアイテムがASIL-Dの要求に基づき、アイテムにASIL-Dを割り当てます。ここで注意すべきは、エレメントには当初はASILは存在せず、あくまで要求の属性としてのASILが存在することです。エレメントには様々な安全目標によって、様々な要求が割り当てられますが、その中の最高レベルのASILにより、エレメントのASILが規定されます。

例えば、アイテムが3つのエレメントに分割され、それぞれ別のサプライヤによって開発される場合には、どうしてもそれぞれのサプライヤに対して、PMHF目標値を設定する必要があります。これを従来はバジェッティングと呼んでいました。アイテムで10FITの予算(バジェット)があり、それを配分するイメージとなります。例えば3つずつであれば、3.3FITずつ割り当てることができます。

図%%.1
図116.1 1st EditionのPMHFバジェッティング

2nd Editionのバジェッティング

規格でバジェットの単語が出てくるのはPart5 9.4.2.3の中です。9.4.2.3は上記の予算配分(分割)と言うよりも、多重割り当てと言ったほうがふさわしい節です。その理由は9.4.2.3は、上記のようにASIL-Dの目標をエレメントの数で分割するのではなく、比較的大きなシステム、例えばADASのように、物標認識システム、ブレーキ制御システム、エンジン制御システム等のように、それだけで従来はアイテムレベルであったシステムを複数組み合わせた場合のPMHFの考え方を表すものだからです。そしてその場合は、それぞれのシステムにASILを割り当て、10個までは組み合わせて良いと規定しています。例えばASIL-Dのシステムを10個までならぎりぎり目標が10倍となり10倍を超えませんが、10倍を超える目標値を設定することは許されていません。

図%%.2
図116.2 2nd EditionのPMHFバジェッティング


左矢前のブログ 次のブログ右矢

posted by sakurai on June 20, 2019

2nd Edition Annex F.3,4,5

次にF.3を見てみます。F.3は「評価対象のフォールト又は故障モードの選択基準の決定」となっています。本来はFMEDAのフォールトイベントの評価として全ての故障モードを評価すべきでしょうが、それだと数千件も評価しなければならないため、本節で故障モードの絞り込みを行うのだと思われます。

ちなみに、PMHFへの寄与率を厳密に考えると、PMHFのSPF部分とDPF部分がありますが、DPF部分は故障モードの組み合わせであるため、以下は全てPMHFの値(SPF+DPF)への、故障モードのSPF部分の寄与率と言う意味となります。

  1. SPFまたはRFに関して、DCが90%以下の全てのフォールト又は故障モード
  2. PMHFの寄与率が2%以上の全てのフォールト又は故障モード
  3. PMHFの寄与率が上位20位以内の全てのフォールト又は故障モード

この選択基準で絞り込むと、本例ではたまたま以下の値になります。

  1. 2件の故障モード⇒PMHFへの寄与率は95.68%
  2. 2件の故障モード(上記と同じ)⇒PMHFへの寄与率は95.68%
  3. 20件の故障モード⇒PMHFへの寄与率は99.89%

F.5では、これらは全てPMHFへの寄与率が95%以上であるから問題無しとしています。逆にそうであるなら、直接的に

  1. PMHFへの寄与率が95%を超えるまでの上位からの全てのフォールト又は故障モード

とするほうが自然ではないでしょうか。ちなみにこのような絞り込み条件を設定すると、2件の故障モード⇒PMHFへの寄与率は95.68%となり、上記1.及び2.と同様2件の故障モードを分析すれば良いことになります。以下に故障モードに関してPMHFへの寄与率が大きい順にリストします。

コンポーネント名 故障率
[FIT]
SR? 故障モード 分布[%] SM DC[%] λRF PMHFへの
寄与率[%]
PMHFへの
寄与率累積[%]
1 μC 100 Yes all 50 SM4 90 5.000 91.13 91.13
2 T61 5 Yes short 50 SM2 90 0.250 4.56 95.68

従って、分析方法をまとめれば、「 PMHFへの寄与率が95%を超えるまでの上位からの全てのフォールト又は故障モード」について絞り込みを実施し、それぞれに故障モードについて、安全方策がとられているかどうかを確認することになります。このときなぜ95%以上としたのかを問われたら、2nd Edition規格Annex F.3を参照したとなります。


左矢前のブログ 次のブログ右矢

posted by sakurai on June 19, 2019

2nd Edition Annex F

2nd Editionで新設されたAnnex F のFMEDAシートを図114.1に示します。

図%%.1
図114.1 2nd Edition, Annex F FMEDA

前項と比較して、右端の欄が2つ増えており、重要なのはDPF_detです。Annex Fの「F.2 PMHF評価を提供する安全分析」において、 $$ PMHF_{\mathrm{est}}=\lambda_{\mathrm{SPF}}+\lambda_{\mathrm{RF}}+\color{red}{\lambda_{\mathrm{DPF,det}}}\color{green}{\lambda_{\mathrm{DPF,lat}}}T_{\mathrm{lifetime}}\tag{114.1} $$ でPMHFを近似していると書かれています。$\lambda_{\mathrm{SPF}}$、$\lambda_{\mathrm{RF}}$はSPFMを求めるため、$\color{green}{\lambda_{\mathrm{DPF,lat}}}$もLFMを求めるために既に表にあるため、$\color{red}{\lambda_{\mathrm{DPF,det}}}$が新たに表に必要となります。

ただし、弊社では(114.1)には異論があります。正しいPMHF式は、1st Editionの3番目の一般式を示すと、 $$ M_{\mathrm{PMHF}}=\lambda_{\mathrm{RF}}+\lambda_{\mathrm{IF,DPF}}\lambda_{\mathrm{SM,lat}}T_{\mathrm{lifetime}}\tag{114.2} $$ です。これは、1st Editionで述べられているとおり故障順序によらない式であり、$\lambda_{\mathrm{SM,lat}}T_{\mathrm{lifetime}}\gg\lambda_{\mathrm{SM,det}}T_{\mathrm{service}}$かつ、IFがアンリペアラブル、SMがリペアラブルの場合に成り立つことは検証済みです。

(114.2)と(114.1)を比較すると、DPFの項の2つの故障率が異なっています。(114.1)では主機能と安全機構の値を合わせた故障率$\color{red}{\lambda_{\mathrm{DPF,det}}}$及び$\color{green}{\lambda_{\mathrm{DPF,lat}}}$を使用しています。双方をIFとSMの和に分解すれば、 $$ \color{red}{\lambda_{\mathrm{DPF,det}}} =\img[-1.35em]{/images/withinseminar.png} \tag{114.3} $$ であり、たまたま$K_{\mathrm{SM,MPF}}=0$、$K_{\mathrm{IF,MPF}}=1$であることから、(114.3)は $$ \color{red}{\lambda_{\mathrm{DPF,det}}}=K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}=\lambda_{\mathrm{IF,DPF}}\tag{114.4} $$ となります。本来はPMHF式(114.2)を鑑みると、これは$\lambda_{\mathrm{IF,DPF}}$とするべきです。また、同様に$\color{green}{\lambda_{\mathrm{DPF,lat}}}$もIFとSMの部分に分解すれば、 $$ \color{green}{\lambda_{\mathrm{DPF,lat}}} =\img[-1.35em]{/images/withinseminar.png} \tag{114.5} $$ ですが、たまたま前述の$K_{\mathrm{SM,MPF}}=0$、$K_{\mathrm{IF,MPF}}=1$の条件から(114.5)は $$ \color{green}{\lambda_{\mathrm{DPF,lat}}}=\lambda_{\mathrm{SM}}=\lambda_{\mathrm{SM,lat}}\tag{114.6} $$ となり、値は結果的に正しくなります。しかしながら、この条件が常に成り立つとは言えないのと、より正確な値を$T_{\mathrm{service}}$を用いて算出するためには、IFとSMの値を合わせないほうが良く、結論として(114.2)を用いるべきと考えます。


左矢前のブログ 次のブログ右矢

posted by sakurai on June 18, 2019

2nd Edition Annex E

次に2nd Editionで新設されたAnnex F - PMHFの評価例について説明します。対象となる回路はAnnex EのFMEDAで解析した以下の回路です。

図%%.1
図113.1 2nd Edition, AnnexE 対象回路

それに基づくAnnex EのFMEDAシートの一部を示します。

図%%.2
図113.2 2nd Edition, Annex E FMEDA

これらは1st Editionの同じくAnnex Eに掲載されており、基本的に変わっていません。


左矢前のブログ 次のブログ右矢

posted by sakurai on June 15, 2019

1st Editionと2nd Editionとの変化点

本稿ではISO 26262:2011を1st Edition、ISO 26262:2018を2nd Editionと呼びます。さて、7年間の議論を経て発効された2nd Editionではどこがどう変わったのでしょうか?

本ブログではハードウェア領域においての変化点をご紹介していきます。ISO 26262においてのハードウェア領域は主にPart 5、Part 10、及びPart 11となります。

Part 5

本文中の細かいところも変更されていますが、一見して目に付くのがAnnexの章立てが変更されていることです。

  • 1st Edition Annex F (スケーリングファクタ)の廃止
  • 2nd Edition Annex F (PMHFの評価例)の追加
  • 2nd Edition Annex G (PMHFバジェッティング例)の追加
  • 2nd Edition Annex H(レイテントフォールト取扱い例)の追加

これらひとつひとつについて、「ISO 26262変化点セミナー」でご説明予定ですが、ブログでも簡単に解説していきたいと思います。

Annex F (スケーリングファクタ)の廃止

スケーリングファクタは異なる故障率データベースからの故障率を混ぜて使用する場合、土台を合わせないと正しく使用できないことから、それについての注意点を記述した章でした。ところが2nd Editionでは削除されています。元々、1st Editionでは9.2.4.7にのみスケーリングファクタが書かれており、そこからAnnex Fへ参照となっていたものです。この9.2.4.7はPMHF手法による、安全目標侵害確率の評価の最後の章となっています。つまり1st Editionでは、PMHFを正しく求める方法としてスケーリングファクタを導出し、故障率の土台を合わせて計算することを推奨していました。

一方2nd Editionでは、章が削除されたとはいえ、スケーリングの議論は8.4.3に新設されています。8.4は故障率を異なるデータソースから算出する話なので、スケーリングについて触れるにはちょうど良い場所です。さらに備考に、スケーリングを正しく行わない場合SPFM/LFMにも悪影響が及ぶとあり、スケーリング対象をPMHFのみからアーキテクチャメトリクスまで広げていることは妥当と考えます。

まとめると、独自の章としては削除されたものの、スケーリングは一層重要になります。


左矢前のブログ 次のブログ右矢

posted by sakurai on June 13, 2019

組み立てたPCBをUltra96と組み合わせ動作確認を行います。4層だから電源、グラウンドノイズが抑えられるかと思いましたが、2層とあまり変わらず、400mVp-pくらいありました。やや大きい気がします。

2層と言えどもベタ電源、ベタグラウンドとしているので4層と変わらないのか、それとも3端子レギュレータのノイズがかなり強力で、バイパスしきれていないのか不明です。パスコンをかなり入れている割にはあまり効いていない感じがします。

3端子レギュレータの温度上昇が心配だったので、デジタル温度計を繋ぎ、数時間動作させてみました。39度までは上がらないようです。12Vから3.3Vに落としているのでドロップ電圧が大きく、ドロップ電圧×電流の電力を熱として消費するため熱暴走が心配でした。このレベルの消費電力であれば、ヒートシンクは不要のようです。

図111.1
図111.1 PCB基板

ところで、前回使用したFusion PCBは実装費用が(BokTechに比べたら)高額だったのですが、今回実装費用を約65 USDも値下げしてきました。比較してみると、この基板を製造費、実装費、部品費、配送料込みで、

ベンダー Fusion PCB BokTech
2層板(5枚製造、2枚SMD実装) 89.13⇒23.52 USD 54.83 USD
4層板(5枚製造、2枚SMD実装) 129.13⇒63.52 USD 92.02 USD
2019年5月調べ

図111.2
図111.2 PCB基板価格

と競合であるBokTechを下回る価格を打ち出してきました。従来はBokTechよりも約35 USD高かったのですが、BokTechよりも約30 USDも安くなっています。

そもそも実装費用がこれだけ安ければ、全てSMDにして実装を任せても良くなります。また、部品費用はそのほうが安いものが多いため、メリットがあるでしょう。手ハンダを前提としたスルーホール中心の考え方まで変える必要がありそうです。


左矢前のブログ 次のブログ右矢


ページ: